標籤:font art als creat 產生 set post value 右鍵
【轉載】 c#securityexception不允許所請求的註冊表訪問權
開機自啟動程式如下:
if (!System.IO.File.Exists(filename)) throw new Exception("該檔案不存在!"); string name = filename.Substring(filename.LastIndexOf("\\") + 1); reg = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run", true); if (reg == null) { reg = Registry.LocalMachine.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run"); } if (isAutoRun) reg.SetValue(name, filename); else reg.SetValue(name, false);
然後彈出異常:securityexception不允許所請求的註冊表訪問權。
找了好久都說什麼許可權不夠,不是我需要的答案。解決方案如下:
1、右鍵產生的exe應用程式,以管理員身份運行,如果沒問題,就說明是可以訪問修改註冊表的;
但是這樣是不能用的,因為你重啟後會直接彈出異常,說不允許所請求的註冊表訪問權 。問題還是沒解決。
2、一般在win7下,VS訪問註冊表HKEY_LOCAL_MACHINE,即程式中的LocalMachine是需要管理員身份啟動並執行。但是訪問HKEY_CURRENT_USER是沒問題的。
所以修改程式如下:
...
reg = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run", true); if (reg == null) { reg = Registry.CurrentUser.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run"); }
...
OK,可以了
解決辦法二: 就是說的用管理員身份登入,或把目前使用者加入Administrator 群組
c#securityexception不允許所請求的註冊表訪問權