Windows登錄檔C#程式編輯
Windows有提供Registry登錄檔以供系統或是程式使用。可以參考維基百科登錄檔。
使用類別: RegistryKey
命名空間: Microsoft.Win32
我們先看一下設定值的寫法
private void SetRegeditData(string name, string tovalue, RegistryValueKind regKind){
RegistryKey hklm = Registry.CurrentUser;
RegistryKey software = hklm.OpenSubKey("Software", true);
RegistryKey aimdir = software.CreateSubKey("DearJames");
aimdir.SetValue(name, tovalue, regKind);
}
設定值本來存在的就覆蓋,本來沒有的就新建。 但是讀取值就不一樣了! 個人寫的function如下:
private string GetRegeditData(string name)
{
string registData;
RegistryKey hkml = Registry.CurrentUser;
RegistryKey software = hkml.OpenSubKey("Software", true);
RegistryKey aimdir = software.OpenSubKey("DearJames", true);
if(aimdir==null)
{
software.CreateSubKey("DearJames");
aimdir = software.OpenSubKey("DearJames", true);
}
registData = aimdir.GetValue(name, "1").ToString();
return registData;
}
登錄檔裡面可以分成Key, SubKey, 與Value。SubKey如果不存在時,在OpenSubKey的傳回值會是null, 因此用是否null就可以判斷。但是,對於Value, function GetValue(name, "1")如果不存在會傳回你預設的預定值"1"。需要注意的是,不存在的(名稱/Value)不會幫你在登錄檔內建立。這樣,基本的登錄檔讀寫就算完成了!
留言