程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#對注冊表的操作

C#對注冊表的操作

編輯:C#入門知識

C#中提供的與注冊表相關的最主要的是兩個類:

RegistryRegistryKey,這兩個類屬於Microsoft.Win32命名空間

 

Registry類包含5個公共的靜態域,分別代表5個基本主鍵分別是:

Registry.ClassesRoot

Registry.CurrentUser

Registry.LocalMachine

Registry.Users

Registry.Current Config

這5個類分別對應注冊表的第二級目錄的五個預定義主鍵

 

RegistryKey類中提供了對注冊表操作的方法

CreateSubKey //建立一個子鍵

OpenSubKey //打開一個子鍵

DeleteKey //刪除一個子鍵

DeleteKeyTree//刪除一個鍵及其下的全部鍵

GetValue //獲取鍵值

SetValue //設置鍵值

 

 

建立子健並設置鍵值的示例:

 

\\代碼
private void WTRegedit(string name,string tovalue) 

{

RegistryKey hklm = Registry.LocalMachine;

RegistryKey software = hklm.OpenSubKey("SOFTWARE",true);

RegistryKey aimdir = software.CreateSubKey("XXX");

aimdir.SetValue(name,tovalue);

}

 

 

刪除一個鍵值的示例:

 

\\代碼
private void DeleteRegist(string name) 

{

string[] aimnames;

RegistryKey hkml = Registry.LocalMachine;

RegistryKey software = hkml.OpenSubKey("SOFTWARE",true);

aimnames = software.GetSubKeyNames();

foreach(string aimKey in aimnames)

{

if(aimKey == name)

aimdir.DeleteSubKeyTree(name);

}

}

 

 

說到了刪除鍵值就必須關注另外一個問題:系統權限!直接刪除一個鍵會觸發執行未授權的操作異常

這又涉及到另外一個類RegistrySecurity,它屬於System.Security.AccessControl命名空間

RegistrySecurity 對象指定了注冊表項的訪問權限,以及如何審核訪問企圖。對注冊表項的訪問權限體現為規則,每個訪問規則由一個 RegistryAccessRule 對象表示。每個審核規則都由一個 RegistryAuditRule 對象表示

若要將訪問控制安全性從一個注冊表項復制到另一個注冊表項,請使用 RegistryKey.GetAccessControl 方法獲取表示第一個注冊表項的訪問規則和審核規則的 RegistrySecurity 對象,然後使用 RegistryKey.SetAccessControl 方法或一個接受 RegistrySecurity 對象的構造函數將規則指定給第二個注冊表項 

示例代碼:

 

\\代碼
RegistrySecurity rsy = new Registr						

  1. 上一頁:
  2. 下一頁: