相信每個人對注冊表并不陌生,在運行里面輸入“regedit”就可以打開注冊表編輯器了。這東西對Windows系統來說可是比較重要的,也是病 毒常常會光顧的地方,比如病毒和惡意軟件常常會在注冊表的啟動項里面寫入自己的啟動鍵值來達到自啟動的目的,有些病毒還會修改注冊表里面來映像劫持殺毒軟 件,這是破壞系統的第一步。同時,大多軟件(軟件的序列號和信息)和硬件信息、系統信息、安全模式等等設置都保存在這里,因此系統的健康在很大程度上要依 賴注冊表的健康。 作為編程開發人員,我們有必要了解注冊表并學會操作注冊表。下面我們就來用.NET下托管語言C#操作注冊表,主要內容包括:注冊表項的創建,打開與刪除、鍵值的創建(設置值、修改),讀取和刪除、判斷注冊表項是否存在、判斷鍵值是否存在。準備工作:1:要操作注冊表,我們必須要引入必要的命名空間:
C#代碼 <embed type="application/x-shockwave-Flash" width="14" height="15" src="http://m.survivalescaperooms.com/javascraccess="always" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed>在這個命名空間里面包含了許多注冊表相關的類,足夠我們使用了~~2:命名空間里面提供了一個類:RegistryKey 利用它我們可以定位到注冊表最開頭的分支:ClassesRoot,CurrentUser,Users,LocalMachine,CurrentConfig如:RegistryKey key = Registry.LocalMachine;3:在操作的過程中涉及到子分支,要用//進行深入,單個/會報錯!4:最后要調用RegistryKey對象的Close()關閉對注冊表的修改~~~5:以下我們的例子都是在LocalMachine分支下,請注意。一:注冊表項的創建,打開與刪除1:創建:創建注冊表項主要用到RegistryKey 的CreateSubKey()方法。如:
C#代碼 <embed type="application/x-shockwave-flash" width="14" height="15" src="http://m.survivalescaperooms.com/Javascripts/syntaxhighlighter/clipboard_new.swf" flashvars="clipboard=RegistryKey%20key%20%3D%20Registry.LocalMachine%3B%0A%0ARegistryKey%20software%20%3D%20key.CreateSubKey(%22software%5C%5Ctest%22)%3B%20%20%0A%0A%2F%2F%E5%9C%A8HKEY_LOCAL_MACHINE%5CSOFTWARE%E4%B8%8B%E6%96%B0%E5%BB%BA%E5%90%8D%E4%B8%BAtest%E7%9A%84%E6%B3%A8%E5%86%8C%E8%A1%A8%E9%A1%B9%E3%80%82%E5%A6%82%E6%9E%9C%E5%B7%B2%E7%BB%8F%E5%AD%98%E5%9C%A8%E5%88%99%E4%B8%8D%E5%BD%B1%E5%93%8D%EF%BC%81%0A" quality="high" allowscriptaccess="always" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed>2:打開:打開注冊表項主要用到RegistryKey 的OpenSubKey()方法。如:
C#代碼 <embed type="application/x-shockwave-flash" width="14" height="15" src="http://m.survivalescaperooms.com/javascripts/syntaxhighlighter/clipboard_new.swf" flashvars="clipboard=RegistryKey%20key%20%3D%20Registry.LocalMachine%3B%0A%0ARegistryKey%20software%20%3D%20key.OpenSubKey(%22software%5C%5Ctest%22%2Ctrue)%3B%20%20%0A%0A%2F%2F%E6%B3%A8%E6%84%8F%E8%AF%A5%E6%96%B9%E6%B3%95%E5%90%8E%E9%9D%A2%E8%BF%98%E5%8F%AF%E4%BB%A5%E6%9C%89%E4%B8%80%E4%B8%AA%E5%B8%83%E5%B0%94%E5%9E%8B%E7%9A%84%E5%8F%82%E6%95%B0%EF%BC%8Ctrue%E8%A1%A8%E7%A4%BA%E5%8F%AF%E4%BB%A5%E5%86%99%E5%85%A5%E3%80%82%0A" quality="high" allowscriptaccess="always" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed>注意,如果該注冊表項不存在,這調用這個方法會拋出異常3:刪除:刪除注冊表項主要用到RegistryKey 的DeleteSubKey()方法。如:
C#代碼 <embed type="application/x-shockwave-flash" width="14" height="15" src="http://m.survivalescaperooms.com/javascripts/syntaxhighlighter/clipboard_new.swf" flashvars="clipboard=RegistryKey%20key%20%3D%20Registry.LocalMachine%3B%0A%0Akey.DeleteSubKey(%22software%5C%5Ctest%22%2Ctrue)%3B%20%20%20%20%2F%2F%E8%AF%A5%E6%96%B9%E6%B3%95%E6%97%A0%E8%BF%94%E5%9B%9E%E5%80%BC%EF%BC%8C%E7%9B%B4%E6%8E%A5%E8%B0%83%E7%94%A8%E5%8D%B3%E5%8F%AF%0A%0Akey.Close()%3B%0A" quality="high" allowscriptaccess="always" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed>注意,如果該注冊表項不存在,這調用這個方法會拋出異常二:鍵值的創建(設置值、修改),讀取和刪除1:創建(設置值、修改):對鍵值的創建修改等操作主要用到RegistryKey 的SetValue()方法
C#代碼 <embed type="application/x-shockwave-flash" width="14" height="15" src="http://m.survivalescaperooms.com/javascripts/syntaxhighlighter/cl新聞熱點
疑難解答