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

運用.NET讀寫Windows注冊編輯表

編輯:關於C#
 

如果你曾經使用過RegOpenKeyEx、RegCreateKeyEx、RegCloseKey等Win32 API函數讀寫過注冊編輯表,你肯定非常熟悉這些復雜的Registry函數。相反,在.NET框架中,Registry和RegistryKey類提供了對Windows注冊編輯表的控制,通過這些類你可非常容易地對注冊編輯表進行讀寫。

  這些類被定義在Microsoft.Win32命名空間和mscorlib.dll裝配中,使用這些類之前,你必須使用using聲明這些命名空間。

#using
using namespace Microsoft::win32;

  Registry類只有七個字段成員,使得你能夠存取注冊編輯表中七個特定的鍵,這同你在注冊編輯表中打開一個鍵非常類似,這些所有的成員均返回一個指向注冊鍵的指針。

ClassesRoot 對應於HKEY_CLASSES_ROOT
CurrentConfig 對應於HKEY_CURRENT_CONFIG
CurrentUser 對應於HKEY_CURRENT_USER
DynData 對應於HKEY_DYN_DATA
LocalMachine 對應於HKEY_LOCAL_MACHINE
PerformanceData 對應於HKEY_PERFORMANCE_DATA
Users 對應於HKEY_USERS

  比如你想讀寫HKEY_LOCAL_MACHINE的數據,你可以先獲得一個指向該鍵的指針。

RegistryKey* pRegKey = Registry::LocalMachine;

  接著調用RegistryKey的OpenSubKey成員函數,然後再調用GetValue即可獲得一個特定的字符串。

pRegKey->OpenSubKey(L"SOFTWARE//Kruse Inc//Version");
Object *pValue = pRegKey->GetValue(L"kWise");

  如果你想設置一個鍵的值,則需要調用它的SetValue函數。

pRegKey->SetValue(L"kWise", "some Value Here");

  刪除一個值可以使用:

pRegKey->DeleteValue(L"kWise");

  其它常用的成員函數還有:

DeleteSubKey 刪除一個子鍵
CreateSubKey 如果鍵已經存在就打開該鍵,否則就創建新鍵
DeleteSubKeyTree 刪除子鍵及其節點

  下面是程序代碼例子(Microsoft Visual c++.net beta2調試通過):

#using
using namespace System;
using namespace Microsoft::Win32;
// 這是應用程序的入口點
int main(void)
{
 RegistryKey * pRegKey = Registry::LocalMachine;
 pRegKey = pRegKey->OpenSubKey(L"HARDWARE//DESCRIPTION
       //System//CentralProcessor//0");
 Object *pValue = pRegKey->GetValue(L"VendorIdentifier");
 Console::WriteLine(L"本機的CPU為: {0}.", pValue);
 return 0;
}

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved