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)不會幫你在登錄檔內建立。

這樣,基本的登錄檔讀寫就算完成了!

留言

這個網誌中的熱門文章

C# 不規則陣列不定長度設定方法

多維陣列的Resize

C#利用DateTime估計程式執行時間