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