相信每個人對注冊表並不陌生,在運行裡面輸入“regedit”就可以打開注冊表編輯器了。這東西對Windows系統來說可是比較重要的,也是病毒常常會光顧的地方,比如病毒和惡意軟件常常會在注冊表的啟動項裡面寫入自己的啟動鍵值來達到自啟動的目的,有些病毒還會修改注冊表裡面來映像劫持殺毒軟件,這是破壞系統的第一步。同時,大多軟件(軟件的序列號和信息)和硬件信息、系統信息、安全模式等等設置都保存在這裡,因此系統的健康在很大程度上要依賴注冊表的健康。
作為編程開發人員,我們有必要了解注冊表並學會操作注冊表。下面我們就來用.Net下托管語言C#操作注冊表,主要內容包括:注冊表項的創建,打開與刪除、鍵值的創建(設置值、修改),讀取和刪除、判斷注冊表項是否存在、判斷鍵值是否存在。
准備工作:
1:要操作注冊表,我們必須要引入必要的命名空間:
using Microsoft.Win32;
在這個命名空間裡面包含了許多注冊表相關的類,足夠我們使用了~~
2:命名空間裡面提供了一個類:RegistryKey 利用它我們可以定位到注冊表最開頭的分支:
ClassesRoot,CurrentUser,Users,LocalMachine,CurrentConfig
如:RegistryKey key = Registry.LocalMachine;
3:在操作的過程中涉及到子分支,要用\\進行深入,單個\會報錯!
4:最後要調用RegistryKey對象的Close()關閉對注冊表的修改~~~
5:以下我們的例子都是在LocalMachine分支下,請注意。
一:注冊表項的創建,打開與刪除
1:創建:
創建注冊表項主要用到RegistryKey 的CreateSubKey()方法。如:
RegistryKey key = Registry.LocalMachine;
RegistryKey software = key.CreateSubKey("software\\test");
//在HKEY_LOCAL_MacHINE\SOFTWARE下新建名為test的注冊表項。如果已經存在則不影響!
2:打開:
打開注冊表項主要用到RegistryKey 的OpenSubKey()方法。如:
RegistryKey key = Registry.LocalMachine;
RegistryKey software = key.OpenSubKey("software\\test",true);
//注意該方法後面還可以有一個布爾型的參數,true表示可以寫入。
注意,如果該注冊表項不存在,這調用這個方法會拋出異常
3:刪除:
刪除注冊表項主要用到RegistryKey 的DeleteSubKey()方法。如:
RegistryKey key = Registry.LocalMachine;
key.DeleteSubKey("software\\test",true); //該方法無返回值,直接調用即可
key.Close();
注意,如果該注冊表項不存在,這調用這個方法會拋出異常