C#?操作Windows注冊表的實現方法
更新時間:2022年03月31日 14:56:09 作者:猿長大人
本文主要介紹了C#?操作Windows注冊表的實現方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
本文將給出操作注冊表的C#代碼以及開發(fā)中遇到的問題。
代碼示例
通過RegistryKey類的OpenBaseKey方法獲取注冊表根節(jié)點。
public static RegistryKey OpenBaseKey(RegistryHive hKey, RegistryView view)
示例一:禁用 Windows 7 系統(tǒng)自動更新
// win7自動更新設置的注冊表路徑 string path = @"SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate"; // 獲取注冊表中win7自動更新設置的節(jié)點(32位系統(tǒng)改為 RegistryView.Registry32) using (var rklm = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64)) { using (var rkUpdate = rklm.OpenSubKey(path, true)) { // 添加值(禁止為1,允許為0) rkUpdate.SetValue("DisableOSUpgrade", 1, RegistryValueKind.DWord); } }
示例二:禁用 Windows 10 提醒
// win10提醒設置的注冊表路徑 string path = @"SOFTWARE\Policies\Microsoft\Windows\Gwx"; // 獲取注冊表中win10提醒設置的節(jié)點(32位系統(tǒng)改為 RegistryView.Registry32) using (var rklm = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64)) { using (var rkNotify = rklm.OpenSubKey(path, true)) { // 添加值(禁止為1,允許為0) rkNotify.SetValue("DisableGwx", 1, RegistryValueKind.DWord); } }
常見問題
問題描述:無法通過OpenSubKey方法獲取到注冊表節(jié)點(通過路徑獲取到的值為null)。
解決方法:請檢查操作系統(tǒng)是32位還是64位,使用OpenBaseKey方法要根據操作系統(tǒng)版本傳入對應參數
- RegistryView.Registry32
- RegistryView.Registry64
到此這篇關于C# 操作Windows注冊表的實現方法的文章就介紹到這了,更多相關C# 操作Windows注冊表內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!