冰楓論壇
標題:
[C#] 登錄檔的增、刪、讀、寫操作
[打印本頁]
作者:
whitefox
時間:
2023-5-31 14:19
標題:
[C#] 登錄檔的增、刪、讀、寫操作
本帖最後由 whitefox 於 2023-6-1 10:24 編輯
!!對系統登錄檔的任意操作是有風險的,開始前請自行評估風險跟對系統的了解程度在進行操作
首先對Windows系統登錄檔結構做一簡單說明
登錄檔有五個主要個根節點,本文稱為基鍵(Root Key),如下:
HKEY_CLASSES_ROOT
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
HKEY_CURRENT_CONFIG
以上各有不同用途跟權限,這裡使用HKEY_CURRENT_USER,建議若還不了解各個用途前可以先以這個來測試
若遇到錯誤為UnauthorizedAccessException就是無權限操作
在基鍵下會有
機碼 - 如檔案總管內的目錄
登錄值組 - 如檔案總管內的檔案,內有值組名稱跟值組數值
大概知道以上分類後,就開始設計操作的功能,首先引用以下命名空間
using Microsoft.Win32;
複製代碼
然後宣告定義一個登錄檔物件,此處選HKEY_CURRENT_USER,路徑使用SOFTWARE\TEST\
public RegistryKey RegKey = Registry.CurrentUser.CreateSubKey(@"SOFTWARE\TEST", true);
複製代碼
寫入一組值組,名稱Sample,內容值1st的字串
RegKey.SetValue("Sample1", "1st");
複製代碼
嘗試讀取並用對話框顯示出來,值組數值可以為字串/二進制值/DWORD/QWORD/多字串值/可擴充字串值,這裡不管是什麼只要不是NULL,就一律型轉成字串
string msg = RegKey.GetValue("Sample1")?.ToString();
MessageBox.Show("Name: Sample1\r\nValue: " + msg);
複製代碼
測試完以上後,就可以刪除此機碼
RegKey.DeleteSubKey("Sample1");
複製代碼
若該機碼下又有子機碼,要刪除層層機碼的話,就要用這個樹狀刪除功能
RegKey.DeleteSubKeyTree("Sample1");
複製代碼
歡迎光臨 冰楓論壇 (https://bingfong.com/)
Powered by 冰楓