windows作業系統的登錄檔中包含了有關計算機執行方式的配置資訊,其中包括windows作業系統配置資訊、應用程式配置資訊、專用使用者設定配置資訊、環境配置資訊等。另外,在windowsnt和windows2000作業系統中,登錄檔中還包含了安全性、網路管理等配置資訊。
在應用程式安裝時,常常需要利用登錄檔來登記應用程式的名字、執行路徑、使用者對應用程式的配置資訊等。許多應用程式在執行時也常常需要訪問登錄檔。
.net框架結構在microsoft.win32名字空間內提供了兩個類用於登錄檔操作:
registry和registrykey。這兩個類都是密封類,不允許被其它類繼承。
registry類中提供了7個公有的靜態域,分別代表windows登錄檔中的7個基本主鍵,它們是:
●registry.classroot,對應於hkey_classes_root主鍵。
●registry.currentuser,對應於hkey_current_user主鍵。
●registry.localmachine,對應於hkey_local_machine主鍵。
●registry.users,對應於hkey_users主鍵。
●registry.currentconfig,對應於hkey_current_config主鍵。
●registry.dyndta,對應於hkey_dyn_data主鍵。
●registry.performancedata,對應於hkey_performance_data主鍵。
registrykey類中封裝了對windows登錄檔的基本操作。對登錄檔的操作必須符合系統提供的許可權,否則不能完成指定的操作,程式將丟擲乙個異常。
建立子鍵
建立子鍵的成員方法的原型為:
public registrykey createsubkey(string subkey);
其中,引數subkey表示要建立的子鍵的名字或子鍵的全路徑名。如果建立成功,返回值就是被建立的子鍵,否則為null。
開啟子鍵
開啟子鍵的成員方法原型為:
public registrykey opensubkey(string name);
public registrykey opensubkey(string name,bool writable);
name引數表示要開啟的子鍵名稱或全路徑名,writable引數表示被開啟的主鍵是否可以被修改。
第乙個方法對開啟的子鍵預設是唯讀的,如果希望對開啟的主鍵進行寫操作,使用第二個方法,並把writalbe引數值設為true.
名字空間microsoft.win32中還為我們提供了另乙個方法,用於開啟遠端機器上的登錄檔進行操作。方法原型為:
public static registrykey openremotebasekey(registryhive hkey,string machinename);
刪除子鍵
deletesubkey方法用於刪除指定的子鍵,方法原型為:
public void deletesubkey(string subkey);
使用deletesubkey方法時,如果子鍵之中還包含子鍵,則刪除失敗,並返回乙個異常。如果要徹底刪除子鍵目錄,即刪除子鍵以及子鍵以下的全部子鍵,可以使用deletesubkeytree方法。該方法的原型為:
public void deletesubkeytree(string subkey);
讀取鍵值
讀鍵的方法原型為:
public object getvalue(string name);
public object getvalue(string name,object defaultvalue);
name引數表示鍵的名稱,返回型別是乙個object型別。如果方法中指定的鍵不存在,則方法返回乙個null。我們在使用getvalue方法時,可以不必關心該鍵的值型別究竟是字串、二進位制還是dword型別,只要使用正確的返回型別就可以了。比如,我們希望讀取乙個字串型別的鍵值,**就可以這樣寫:
string s_value=key.getvalue("type");
其中key表示乙個主鍵。
如果不確定鍵值是否存在,而又不希望得到乙個null返回值,那就使用第二個方法getvalue(string name,object defaultvalue),其中的引數defaultvalue表示預設的返回值。如果讀取失敗,返回值就是傳遞給引數defaultvalue的值。
設定鍵值
設定鍵值的方法原型為:
public void setvalue(string name,object value);
同樣,我們在使用該方法修改鍵值時,不用費心去分辨究竟該傳遞哪種值型別,方法將會識別是哪種型別,並把相應型別的值賦予指定的鍵
C 中對登錄檔的操作 讀寫登錄檔方法
從登錄檔中讀資訊 要讀取的鍵值 讀到的鍵值字串,如果失敗 如登錄檔尚無資訊 則返回 private function readinfo byval p keyname as string dim softwarekey as registrykey registry.localmachine.ope...
C 對登錄檔刪除操作
最近需要開發乙個小工具,用於清除登錄檔中的一些註冊資訊,這裡的技術點有以下幾點 1 查詢登錄檔指定項資訊 根據給定的登錄檔項名稱,查詢項的資訊,如包含子項的數量。2 迴圈查詢子項 由於登錄檔中的子項名稱不知道,只能根據指定的項下面,迴圈取得子項,然後匹配子項中的特定的鍵和鍵值,從而確定子項。3 查詢...
C 中對登錄檔的操作
windows 作業系統的登錄檔包含了很多有關計算機執行的配置方式,開啟登錄檔我們可以看到登錄檔是按類似於目錄的樹結構組織的,其中第二級目錄包含了五個預定義主鍵分別是 hkey classes root,hkey current user,hkey local machine,hkey users,...