C 操作登錄檔

2021-04-30 05:31:04 字數 2646 閱讀 7936

windows 作業系統的登錄檔包含了很多有關計算機執行的配置方式,開啟登錄檔我們可以看到登錄檔是按類似於目錄的樹結構組織的,其中第二級目錄包含了五個預定義主鍵分別是:hkey_classes_root,hkey_current_user,hkey_local_machine,hkey_users,hkey_current_config。

下面我們來分別解釋這5個類的作用

hkey_classes_root該主鍵包含了檔案的副檔名和應用程式的關聯資訊以及window shell和ole用於儲存登錄檔的資訊。該主鍵下的子鍵決定了在windows中如何顯示該類檔案以及他們的圖示,該主鍵是從hkey_lccal_machine/software/classes對映過來的。

hkey_current_user該主鍵包含了如使用者視窗資訊,桌面設定等當前使用者的資訊。

hkey_local_machine主鍵包含了計算機軟體和硬體的安裝和配置資訊,該資訊可供所有使用者使用

hkey_users該主鍵記錄了當前使用者的設定資訊,每次使用者登入系統時,就會在該主鍵下生成乙個與使用者登入名一樣的子鍵,該子鍵儲存了當前使用者的桌面設定、背景位圖、快捷鍵,字型等資訊。一般應用程式不直接訪問改主鍵,而是通過主鍵hkey_current_user進行訪問。

hkey_current_config該主鍵儲存了計算機當前硬體的配置資訊,這些配置可以根據當前所連線的網路型別或硬體驅動軟體安裝的改變而改變。

c#也支援對登錄檔的編輯,.net框架在microsoft.win32名字空間中提供了兩個類來操作登錄檔:registry和registrykey。這兩個類都是密封類不允許被繼承。下面我們分別來介紹這兩個類。

registry類提供了7個公共的靜態域,分別代表7個基本主鍵(其中兩個在xp系統中沒有,在這就不介紹了)分別是:registry.classesroot,registry.currentuser,registry.localmachine,registry.users,registry.currentconfig。它們分別對應哪幾個鍵我想各位一看就會知道吧。

registrykey類中提供了對登錄檔操作的方法。要注意的是操作登錄檔必須符合系統許可權,否則將會丟擲錯誤。

下面我們就來幾個操作登錄檔常用的幾個方法

建立子鍵的方法原型為:

public registrykey createsubkey(string sunbkey);

引數sunbkey表示要建立的子鍵的名稱或路徑名。建立成功返回被建立的子鍵,否則返回null。

開啟子鍵的方法原型為:

public registrykey opensubkey(string name);

public registrykey opensubkey(string name,bool writable);

引數name表示要開啟的子鍵名或其路徑名,引數writable表示被開啟的子鍵是否允許被修改,第乙個方法開啟的子鍵是唯讀的。microsoft.win32類還為我們提供了另乙個方法,用於開啟遠端計算機上的登錄檔,方法原型為:

public static registrykey openremotebasekey(registryhive hkey,string machinename);

刪除子鍵的方法原型為:

public void deletesubkey(string subkey);

該方法用於刪除指定的主鍵。如果要刪除的子鍵還包含主鍵則刪除失敗,並返回乙個異常,如果要徹底刪除該子鍵極其目錄下的子鍵可以用方法deletesubkeytree,該方法原型如下:

public void deletesunkeytree(string subkey);

讀取鍵值的方法原型如下:

public object getvalue(string name);

public object getvalue(string name,object defaultvalue);

引數name表示鍵的名稱,返回型別是乙個object型別,如果指定的鍵不存在則返回null。如果失敗又不希望返回的值是null則可以指定引數defaultvalue,指定了引數則在讀取失敗的情況下返回該引數指定的值。

設定鍵值的方法原型如下:

public object setvalue(string name,object value);

刪除鍵值的方法原型如下:

public void deletevalue(string name);

哇吃飯的時間到了等下再來繼續寫示例。

昨天由於吃好飯幫朋友找**找到很玩就來步及接下去寫了,今天就來完成示例部分。

這個示例很簡單就是隱藏開始選單下的執行選項,實現方法也很簡單只要稍微修改下登錄檔也可以實現,這裡我們用程式來實現,我們通過在hkey_current_user//software//microsoft//window//currentversion//policies//explorer主鍵下新建乙個dword鍵值norun設定其值為1就可以了,上面我們說過windows的桌面設定大多放在hkey_current_user主鍵中。下面我們就來寫示例的實現**:

using system;

using microsoft.win32;

class test

}呵呵,**就這麼點,呵呵!!

如果你想遮蔽關閉系統,查詢功能,登出和文件選項也可以至於怎麼遮蔽就自己慢慢摸索吧,先告訴你和遮蔽執行選單是一樣的就建的鍵值不同。好了就到這裡了,結束!!!

c 操作登錄檔

1.讀取指定名稱的登錄檔的值 private string getregistdata string name 以上是讀取的登錄檔中hkey local machine software目錄下的 目錄中名稱為name的登錄檔值 2.向登錄檔中寫資料 private void wtregedit st...

C 登錄檔操作

寫這篇日誌以前不是沒有接觸過c 來操作登錄檔,但這次的體會更深入了一點,故筆記如下。首先可以從 登錄檔reg檔案語法規則 了解下.reg檔案的語法規則,因為很多時候是把.reg裡的 轉換為程式裡的啊。知道語法後,可以根據裡面的 開始逐個轉化為c 了。首先是建立hkey,呼叫regcreatekey或...

C 操作登錄檔

用.net下託管語言c 操作登錄檔,主要內容包括 登錄檔項的建立,開啟與刪除 鍵值的建立 設定值 修改 讀取和刪除 判斷登錄檔項是否存在 判斷鍵值是否存在。準備工作 1 要操作登錄檔,我們必須要引入必要的命名空間 using microsoft.win32 classesroot,currentus...