登錄檔操作

2021-09-06 08:53:16 字數 3065 閱讀 3695

用.net下託管語言c#操作登錄檔,主要內容包括:登錄檔項的建立,開啟與刪除、鍵值的建立(設定值、修改),讀取和 

刪除、判斷登錄檔項是否存在、判斷鍵值是否存在。 

準備工作: 

1:要操作登錄檔,我們必須要引入必要的命名空間: 

c#**  

using microsoft.win32;  

在這個命名空間裡面包含了許多登錄檔相關的類,足夠我們使用了~~ 

2:命名空間裡面提供了乙個類:registrykey 利用它我們可以定位到登錄檔最開頭的分支: 

classesroot,currentuser,users,localmachine,currentconfig 

如:c#**  

registrykey key = registry.localmachine;  

3:在操作的過程中涉及到子分支,要用進行深入,單個會報錯! 

4:最後要呼叫registrykey物件的close()關閉對登錄檔的修改~~~ 

5:以下我們的例子都是在localmachine分支下,請注意。 

一:登錄檔項的建立,開啟與刪除 

1:建立: 

建立登錄檔項主要用到registrykey 的createsubkey()方法。如: 

c#**  

registrykey key = registry.localmachine;  

registrykey software = key.createsubkey(softwaretest);  

在hkey_local_machinesoftware下新建名為test的登錄檔項。如果已經存在則不影響! 

2:開啟: 

開啟登錄檔項主要用到registrykey 的opensubkey()方法。如: 

c#**  

registrykey key = registry.localmachine;  

registrykey software = key.opensubkey(softwaretest,true);  

注意該方法後面還可以有乙個布林型的引數,true表示可以寫入。 

注意,如果該登錄檔項不存在,這呼叫這個方法會丟擲異常 

3:刪除: 

刪除登錄檔項主要用到registrykey 的deletesubkey()方法。如: 

c#**  

registrykey key = registry.localmachine;  

key.deletesubkey(softwaretest,true); //該方法無返回值,直接呼叫即可

key.close();  

注意,如果該登錄檔項不存在,這呼叫這個方法會丟擲異常 

二:鍵值的建立(設定值、修改),讀取和刪除 

1:建立(設定值、修改): 

對鍵值的建立修改等操作主要用到registrykey 的setvalue()方法 

c#**  

registrykey key = registry.localmachine;  

registrykey software = key.opensubkey(softwaretest,true); 該項必須已存在  

software.setvalue(test, 園);  

在hkey_local_machinesoftwaretest下建立乙個名為「test」,值為「園」的鍵值。如果該鍵值原本已經存在, 

則會修改替換原來的鍵值,如果不存在則是建立該鍵值。 

注意:setvalue()還有第三個引數,主要是用於設定鍵值的型別,如:字串,二進位制,dword等等~~預設是字串。 

如: c#**  

software.setvalue(test, 0, registryvaluekind.dword);// 二進位制資訊

ey.close();  

2:讀取: 

c#**  

string info = ;  

registrykey key;  

key = registry.localmachine;  

myreg = key.opensubkey(softwaretest);  

myreg = key.opensubkey(softwaretest,true);  

info = myreg.getvalue(test).tostring();  

myreg.close();  

info結果為:園 

3:刪除: 

c#**  

registrykey delkey = registry.localmachine.opensubkey(softwaretest, true);  

delkey.deletevalue(test);  

delkey.close();  

細心的讀者可能發現了第二個例子中opensubkey()方法引數與其他例子的不同。 

如果你要修改鍵值,包括建立、設定、刪除鍵值等都要在方法後面加個布林引數,設定為true,表示可寫可改;如果僅 

僅只是讀取鍵值可以不加,此時可寫關閉,你不能再往裡寫值(當然,你要加也可以true)! 

還有讀者提到讀寫預設鍵值的問題,主要在設定、讀取的方法中將鍵名置空則就是對預設鍵值的操作。 

如: c#**  

software.setvalue(, 園);    

在hkey_local_machinesoftwaretest修改預設鍵值的值為「園」。讀取類似! 

另外,預設的鍵值是不能刪除的,所以不要用deletevalue()方法去刪除,會丟擲異常的! 

三:判斷登錄檔項是否存在 

c#**  

private

bool isregedititemexist()  

}  hkml.close();  

return

false;  

}  

四:判斷鍵值是否存在 

c#**  

private

bool isregeditkeyexit()  

}  hkml.close();  

return

false;  

}  

登錄檔操作

近來由於需要在自己寫的程式中對登錄檔進行操作。總結些經驗,並做個乙個demo供日後使用,現在把它拿出來和大家分享 小弟初學vc,有誤之處還請賜教。為了使用方便,我把一些操作寫成了函式,以便方便呼叫,具體 如下所示 一 定義 hkey hkey char content 256 所查詢登錄檔鍵值的內容...

登錄檔操作

2005年10月29日 19 29 00 一 寫入 1.建立檔案 建立乙個註冊 式檔案 reg,內容如下 windows registry editor version 5.00 hkey local machine software test server 192.168.66.22 databa...

登錄檔操作

import win32con key win32api.regopenkey win32con.hkey current user,software 0,win32con.key read print key import win32api import win32com key win32api...