如何用Visual C 來建立 修改註冊資訊

2021-04-13 00:18:38 字數 2815 閱讀 4503

如何用visual c#來建立、修改註冊資訊

(王天 2023年01月08日 20:08)

在《如何讀取註冊資訊》和

《用visual c#來刪除登錄檔中的註冊資訊》文章中,已經**了用visual c#來讀取、刪除登錄檔中的註冊資訊,在本篇文章中我們就來介紹visual c#登錄檔程式設計的另外二個重要的操作:建立註冊資訊和修改註冊資訊。

在上二篇文章中,我們已經知道,由於visual c#本身沒有類庫,他是通過.net框架中的.net framework sdk(軟體開發包)定義的一些類來實現對登錄檔的操作。這就是命名空間microsoft.win32中封裝的二個類:registry類、registrykey類。在registrykey類中定義了二個方法用來建立登錄檔中的主鍵、子鍵和鍵值。他們是createsubvalue ( )方法和setvalue ( )方法。那麼如何用visual c#來修改註冊資訊,在本文中,我們只是介紹了修改登錄檔中的鍵值的方法。而對於主鍵和子鍵,由於.net framework sdk中還沒有定義這方面的方法,所以還無法完成安全的修改登錄檔中的資訊。下面就先介紹如何用visual c#來建立註冊資訊。

一.visual c#建立和修改註冊資訊要呼叫的二個方法:

(1).createsubkey ( string key )方法:此方法是建立以後面的字串為名稱的子鍵。當然這種方法不僅能夠建立子鍵,在下面介紹的程式中,也通過此種方法來建立乙個主鍵。

(2).setvalue ( string name , string keyvalue )方法:此方法的作用有二點,一種可以用來重新命名鍵值的數值,一種可以用來建立新的鍵值。具體情況如下:當開啟的子鍵中,如果存在此鍵值,就把新值賦給他,實現重新命名操作。如果不存在,則建立乙個新的鍵值。

二.程式設計和執行環境以及要準備的工作:

i>視窗系統2000伺服器版

ii>.net framework sdk beta 2版

iii>由於在程式中,要修改乙個已經存在的鍵值,所以就要預先設定好鍵值所在的位置。開啟登錄檔的編輯器,在"hkey_local_machine"主鍵下面的"hardware"子鍵下面建立"aaa"子鍵並在此子鍵下面建立乙個名稱為"bbb"的鍵值。具體如下圖所示:

圖01:為程式設定的登錄檔的結構圖示

三.程式的主要功能以及設計的重要步驟:

在下面介紹的程式中,主要的功能是用visual c#在登錄檔中建立乙個主鍵、乙個子鍵和修改乙個指定的鍵值。其中要建立的子鍵的結構層次是在主鍵"hkey_local_machin"下面的"hareware"主鍵下,名稱為"ddd",其中包含乙個鍵值,名稱為"www",鍵值的值為"1234"。

其中的要建立的主鍵的結構層次也是在主鍵"hkey_local_machin"下面的"hareware"主鍵下,名稱為"main",在此主鍵下面包含乙個名稱為"sub"的子鍵和名稱為"value"鍵值,鍵值的值為"1234"。下面就來著重介紹visual c#是如何建立和修改這些主鍵、子鍵和鍵值的。

(1).如何建立乙個子鍵,在程式中是結合createsubkey ( )方法和setvalue ( )方法來實現的,以下是程式中建立子鍵的源程式:

listbox1.items.clear ( ) ;

registrykey hklm = registry.localmachine ;

registrykey software = hklm.opensubkey ( "hardware" , true ) ;

registrykey main1 = software.createsubkey ( "main" ) ;

registrykey ddd = main1.createsubkey ( "sub" ) ;

ddd.setvalue ( "value" , "1234" );

(2).如何建立乙個主鍵,建立乙個主鍵和建立乙個子鍵的過程大致是差不多的。由於主鍵包含若干子鍵,所以在建立主鍵的時候必須注意他們的層次關係。下面這一段程式,在參考的時候,請注意一下main鍵和sub鍵之間的關係。

listbox1.items.clear ( ) ;

registrykey hklm = registry.localmachine ;

registrykey software = hklm.opensubkey ( "hardware", true ) ;

registrykey main1 = software.createsubkey ( "main" ) ;

registrykey ddd = main1.createsubkey ( "sub" ) ;

ddd.setvalue ( "value" , "1234" ) ;

(3).如何修改註冊資訊。由於登錄檔中的資訊十分重要,所以一般不要對其進行寫的操作。也可能是這個原因,在.net framework sdk 中並沒有提供修改登錄檔鍵的方法。而只是提供了乙個危害性相對較小的方法--setvalue ( ),通過這個方法,我們可以來修改鍵值。下面程式**是修改乙個指定鍵值名稱的鍵值。當然由於setvalue( )方法的特性,如果它檢測到這個鍵值不存在,就會建立乙個新的鍵值。

listbox1.items.clear ( ) ;

registrykey hklm = registry.localmachine ;

registrykey software = hklm.opensubkey ( "hardware", true ) ;

registrykey dddw = software.opensubkey ( "aaa" , true ) ;

dddw.setvalue ( "bbb" , "abcd" ) ;

以下是程式執行的介面:

如何用Visual C 來建立 修改註冊資訊

如何用visual c 來建立 修改註冊資訊 王天 2002年01月08日 20 08 在 如何讀取註冊資訊 和 用visual c 來刪除登錄檔中的註冊資訊 文章中,已經 了用visual c 來讀取 刪除登錄檔中的註冊資訊,在本篇文章中我們就來介紹visual c 登錄檔程式設計的另外二個重要的...

用Visual C 來建立 修改登錄檔資訊

在 如何讀取註冊資訊 和 用visual c 來刪除登錄檔中的註冊資訊 文章中,已經 了用visual c 來讀取 刪除登錄檔中的註冊資訊,在本篇文章中我們就來介紹visual c 登錄檔程式設計的另外二個重要的操作 建立註冊資訊和修改註冊資訊。在上二篇文章中,我們已經知道,由於visual c 本...

如何用go來建立web服務

mac安裝 brew install golang 配置環境變數 vi bash profile 或 vi etc profile export goroot usr local go 安裝目錄 export gopath goroot bin 工作區 即工作目錄 可以配置多個,以 分割 expor...