本想用機碼取值,但是無法獲得子節點。
除了外部設定之外,請問有辦法用程式提升執行權限嗎?或是有其他辦法能獲得子機碼?
RegistryKey SOFTWARE = Registry.LocalMachine.OpenSubKey(@"SOFTWARE", false
);
RegistryKey key = SOFTWARE.CreateSubKey(@"AA");
//RegistryKey key = SOFTWARE.OpenSubKey(@"AA",false); //key==null
/*拒絕存取登錄機碼 'HKEY_LOCAL_MACHINE\SOFTWARE\AA'。*/
----------------------------------------更新解法--------------------------------------------
原本手動建在HKEY_LOCAL_MACHINE\SOFTWARE\的節點上,會發現程式讀不到機碼。
於是我先用console創建一個機碼後再讀取就讀得到
RegistryKey key = Registry.LocalMachine.CreateSubKey(@"SOFTWARE\mykey");
key.SetValue("aaa", "123456");
Console.WriteLine(key.GetValue("aaa")?.ToString());//123456
但是節點卻是HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node
於是google後得知win64的機碼須放在WOW6432Node節點下才能運行
How to view the system registry by using 64-bit versions of Windows
32-bits、64-bits 作業系統的 Registry 注意事項
切換使用者身份,登入類別選 9、登入提供者選 0