摘要
注冊表(Registry,繁體中文版Windows操作系統稱之為登錄檔案)是Microsoft Windows中的一個重要的數據庫,用于存儲系統和應用程序的設置信息。早在Windows 3.0推出OLE技術的時候,注冊表就已經出現。隨后推出的Windows NT是第一個從系統級別廣泛使用注冊表的操作系統。但是,從Microsoft Windows 95操作系統開始,注冊表才真正成為Windows用戶經常接觸的內容,并在其后的操作系統中繼續沿用。
正文
命令行,輸入regedit
Registry類,RegistryKey類提供了操作注冊表的接口
注冊表主鍵
Registry.ClassesRoot:對應于HKEY_CLASSES_ROOT主鍵
Registry.CurrentUser:對應于HKEY_CURRENT_USER主鍵
Registry.LocalMachine:對應于 HKEY_LOCAL_MACHINE主鍵
Registry.User:對應于 HKEY_USER主鍵
Registry.CurrentConfig:對應于HEKY_CURRENT_CONFIG主鍵
Registry.DynDa :對應于HKEY_DYN_DATA主鍵
Registry.PerformanceData:對應于HKEY_PERFORMANCE_DATA主鍵
RegistryKey類
RegistryKey類封裝了對注冊表的基本操作。包括讀、寫、刪等操作的常用函數:
Name:鍵的名稱(只讀)
SubKeyCount:鍵的子鍵個數
ValueCount:鍵包含的值的個數
Close():關閉鍵
CreateSubKey():創建給定名稱的子鍵
DeleteSubKey():刪除指定的子鍵
DeleteSubKeyTree():遞歸刪除子鍵及其所有的子鍵
DeleteValue():從鍵中刪除一個指定的值
GetAccessControl():返回指定注冊表鍵的訪問控制表
GetSubKeyNames():返回包含子鍵名稱的字符串數組
GetValue():返回指定的值
GetValueKind();返回指定的值,檢索其注冊表數據類型
GetValueNames():返回一個包含所有鍵值名稱的字符串數組
OpenSubKey():返回表示給定子鍵的RegistryKey實例引用
SetAccessControl():把訪問控制表(ACL)應用于指定的注冊表鍵
SetValue();設置指定的值
創建一個Key
private void btnCreateSubKey_Click(object sender, EventArgs e)
{
//使用CreateSubKey()在SOFTWARE下創建子項IDIOSOFT
RegistryKey hklm = Registry.LocalMachine;//HKEY_LOCAL_MACHINE
RegistryKey hkSoftWare = hklm.CreateSubKey(@"SOFTWARE\IDIOSOFT");
hklm.Close();
hkSoftWare.Close();
}
創建鍵值
private void btnCreateInfo_Click(object sender, EventArgs e)
{
//主要用到了SetValue(),表示在IDIOSOFT下創建名稱為Name與No
RegistryKey hklm = Registry.LocalMachine;
//打開現有SubKey節點
RegistryKey key = hklm.OpenSubKey(@"SOFTWARE\IDIOSOFT", true);
key.SetValue("Name", "admin", RegistryValueKind.String);
key.SetValue("No", "10001", RegistryValueKind.String);
hklm.Close();
key.Close();
}
取得Value
private void btnReadInfo_Click(object sender, EventArgs e)
{
//主要用到了GetValue(),獲得名稱為"Name","No"的鍵值
RegistryKey hklm = Registry.LocalMachine;
RegistryKey hkSoftWare = hklm.OpenSubKey(@"SOFTWARE\IDIOSOFT", true);
string Name = hkSoftWare.GetValue("Name").ToString();
string No = hkSoftWare.GetValue("No").ToString();
hklm.Close();
hkSoftWare.Close();
}
刪除一個鍵值
private void btnGetValue_Click_1(object sender, EventArgs e)
{
//主要用到了DeleteValue()
//,表示刪除名稱為"Name"的鍵值,第二個參數表示是否拋出異常
RegistryKey hklm = Registry.LocalMachine;
RegistryKey key = hklm.OpenSubKey(@"SOFTWARE\IDIOSOFT", true);
key.DeleteValue("Name", true);
hklm.Close();
key.Close();
}
刪除一個鍵
private void btnDeleteKey_Click(object sender, EventArgs e)
{
//主要用到了DeleteSubKey(),刪除IDIOSOFT項
RegistryKey hklm = Registry.LocalMachine;
//為true時,刪除的注冊表不存在時拋出異常;當為false時不拋出異常。
hklm.DeleteSubKey(@"SOFTWARE\IDIOSOFT", true);
hklm.Close();
}
該文章在 2024/5/17 15:44:15 編輯過