轉貼 Visual C 建立和修改註冊資訊

2021-03-31 08:56:58 字數 2791 閱讀 2358

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

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

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

《用visual c#來刪除登錄檔中的註冊資訊》

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

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

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

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

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

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

i>視窗系統2000伺服器版

ii>.*** framework sdk beta 2版

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

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

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

在下面介紹的程式中,主要的功能是用visual c#在登錄檔中建立乙個主鍵、乙個子鍵和修改乙個指定的鍵值。其中要建立的子鍵的結構層次是在主鍵"hkey_local_machin"下面的"hareware"主鍵下,名稱為"ddd",其中包含乙個鍵值,名稱為"",鍵值的值為"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).如何修改註冊資訊。由於登錄檔中的資訊十分重要,所以一般不要對其進行寫的操作。也可能是這個原因,在.*** 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 建立和使用ActiveX元件

開發基於.net平台上的 程式設計師是很難從本質上把visual c 和activex元件聯起來,雖然在使用visual c 開發應用程式時,有時為了快速開發或者由於.net framework sdk的不完整,還需要借助activex。但即使如此,也很難把二者聯絡起來。其中的原因就是能夠被visu...

SQL 建立和修改表

這一節記錄如何建立和修改表。怎麼增加刪除列,修改屬性,設定主鍵,外來鍵等 create table 表名 列 資料型別 約束或預設值,列 資料型別 約束或預設值,例如我們要建立乙個學生表,那麼我們要先建立乙個資料庫 create database student manager gouse stud...

SQL之建立和修改表

注意 create table語句用於新增表 alter table語句用於修改表定義 drop table語句用於刪除資料庫中的表及其資料 如果執行刪除表中的資料,而不刪除表定義本身,應當怎麼辦?這時就是drop和delete的區別 刪除資料 delete from 表名 全刪 delete fr...