日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > C# >内容正文

C#

C#操作注册表方法

發(fā)布時(shí)間:2023/12/18 C# 62 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#操作注册表方法 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1:要操作注冊(cè)表,我們必須要引入必要的命名空間:

using Microsoft.Win32;

在這個(gè)命名空間里面包含了許多注冊(cè)表相關(guān)的類,足夠我們使用了~~

2:命名空間里面提供了一個(gè)類:RegistryKey??利用它我們可以定位到注冊(cè)表最開頭的分支:

ClassesRoot,CurrentUser,Users,LocalMachine,CurrentConfig

如:RegistryKey key = Registry.LocalMachine;

3:在操作的過(guò)程中涉及到子分支,要用\\進(jìn)行深入,單個(gè)\會(huì)報(bào)錯(cuò)!

4:最后要調(diào)用RegistryKey對(duì)象的Close()關(guān)閉對(duì)注冊(cè)表的修改~~~

5:以下我們的例子都是在LocalMachine分支下,請(qǐng)注意。



一:注冊(cè)表項(xiàng)的創(chuàng)建,打開與刪除

1:創(chuàng)建:

創(chuàng)建注冊(cè)表項(xiàng)主要用到RegistryKey 的CreateSubKey()方法。如:

RegistryKey key = Registry.LocalMachine;

RegistryKey software = key.CreateSubKey("software\\test");??

//在HKEY_LOCAL_MACHINE\SOFTWARE下新建名為test的注冊(cè)表項(xiàng)。如果已經(jīng)存在則不影響!



2:打開:

打開注冊(cè)表項(xiàng)主要用到RegistryKey 的OpenSubKey()方法。如:

RegistryKey key = Registry.LocalMachine;

RegistryKey software = key.OpenSubKey("software\\test",true);??

//注意該方法后面還可以有一個(gè)布爾型的參數(shù),true表示可以寫入。

注意,如果該注冊(cè)表項(xiàng)不存在,這調(diào)用這個(gè)方法會(huì)拋出異常



3:刪除:

刪除注冊(cè)表項(xiàng)主要用到RegistryKey 的DeleteSubKey()方法。如:

RegistryKey key = Registry.LocalMachine;

key.DeleteSubKey("software\\test",true);???//該方法無(wú)返回值,直接調(diào)用即可

key.Close();

注意,如果該注冊(cè)表項(xiàng)不存在,這調(diào)用這個(gè)方法會(huì)拋出異常



二:鍵值的創(chuàng)建(設(shè)置值、修改),讀取和刪除

1:創(chuàng)建(設(shè)置值、修改):

對(duì)鍵值的創(chuàng)建修改等操作主要用到RegistryKey 的SetValue()方法

RegistryKey key = Registry.LocalMachine;

RegistryKey software = key.OpenSubKey("software\\test",true); //該項(xiàng)必須已存在

software.SetValue("test", "博客園");?

//在HKEY_LOCAL_MACHINE\SOFTWARE\test下創(chuàng)建一個(gè)名為“test”,值為“博客園”的鍵值。如果該鍵值原本已經(jīng)存在,則會(huì)修改替換原來(lái)的鍵值,如果不存在則是創(chuàng)建該鍵值。

// 注意:SetValue()還有第三個(gè)參數(shù),主要是用于設(shè)置鍵值的類型,如:字符串,二進(jìn)制,Dword等等~~默認(rèn)是字符串。如:

// software.SetValue("test", "0", RegistryValueKind.DWord); //二進(jìn)制信息

Key.Close();



2:讀取:

string info = "";

RegistryKey Key;

Key = Registry.LocalMachine;

myreg = Key.OpenSubKey("software\\test");??

// myreg = Key.OpenSubKey("software\\test",true);

info = myreg.GetValue("test").ToString();

myreg.Close();

info結(jié)果為:博客園



3:刪除:

RegistryKey delKey = Registry.LocalMachine.OpenSubKey("Software\\test", true);

delKey.DeleteValue("test");

delKey.Close();



細(xì)心的讀者可能發(fā)現(xiàn)了第二個(gè)例子中OpenSubKey()方法參數(shù)與其他例子的不同。

如果你要修改鍵值,包括創(chuàng)建、設(shè)置、刪除鍵值等都要在方法后面加個(gè)布爾參數(shù),設(shè)置為true,表示可寫可改;如果僅僅只是讀取鍵值可以不加,此時(shí)可寫關(guān)閉,你不能再往里寫值(當(dāng)然,你要加也可以true)!

還有讀者提到讀寫默認(rèn)鍵值的問(wèn)題,主要在設(shè)置、讀取的方法中將鍵名置空則就是對(duì)默認(rèn)鍵值的操作。

如:

software.SetValue("", "博客園"); //??在HKEY_LOCAL_MACHINE\SOFTWARE\test修改默認(rèn)鍵值的值為“博客園”。讀取類似!

另外,默認(rèn)的鍵值是不能刪除的,所以不要用DeleteValue()方法去刪除,會(huì)拋出異常的!





三:判斷注冊(cè)表項(xiàng)是否存在

private bool IsRegeditItemExist()

{

??? string[] subkeyNames;

??? RegistryKey hkml = Registry.LocalMachine;

RegistryKey software = hkml.OpenSubKey("SOFTWARE");

//RegistryKey software = hkml.OpenSubKey("SOFTWARE", true);

subkeyNames = software.GetSubKeyNames();?

//取得該項(xiàng)下所有子項(xiàng)的名稱的序列,并傳遞給預(yù)定的數(shù)組中

??? foreach (string keyName in subkeyNames)??//遍歷整個(gè)數(shù)組

??? {

????????if (keyName == "test") //判斷子項(xiàng)的名稱

????????{?????????????

???????????? hkml.Close();

???????????? return true;

?????????}

??????}

????????hkml.Close();

????????return false;????????????

}



四:判斷鍵值是否存在

private bool IsRegeditKeyExit()

{

??? string[] subkeyNames;

??? RegistryKey hkml = Registry.LocalMachine;

RegistryKey software = hkml.OpenSubKey("SOFTWARE\\test");

??? //RegistryKey software = hkml.OpenSubKey("SOFTWARE\\test", true);

??? subkeyNames = software.GetValueNames();

//取得該項(xiàng)下所有鍵值的名稱的序列,并傳遞給預(yù)定的數(shù)組中

??? foreach (string keyName in subkeyNames)

??? {

????????if (keyName == "test")??//判斷鍵值的名稱

????????{

???????????hkml.Close();

???????????return true;

?????????}

??? }

????????hkml.Close();

????????return false;

???}

總結(jié)

以上是生活随笔為你收集整理的C#操作注册表方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。