我已經搜索谷歌和這裏的答案現在一段時間,並得出結論,寫入註冊表時,HKEY_CURRENT_USER應該可用沒有UAC,正確?無論如何,每個線程似乎都是這樣。我的問題是,當試圖訪問此密鑰並寫入一個新值時,我遇到訪問被拒絕錯誤。這是由於我的註冊表有問題嗎?或者我做錯了什麼?以下是我正在使用的代碼:無法寫入HKEY_CURRENT_USER在C#中的註冊表項#
string runKey = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run";
RegistryKey startupKey = Registry.CurrentUser.OpenSubKey(runKey, true);
startupKey.SetValue("Arebokerts application", '"' + Environment.CurrentDirectory + "\\arebokert.exe" + '"', Microsoft.Win32.RegistryValueKind.String);
有沒有人可以如此善待並闡明該主題?我想遠離任何一種UAC提示,並且能夠在沒有UAC特權的情況下運行它。這段代碼拋出一個「UnauthorizedAccessException」。哪裏不對?
最好的問候,arebokert
編輯
由於大衛和漢斯在評論中指出,這個問題是由於一些從改變密鑰阻擋我。我發現它是comodo antivirus,所以我把它關掉了。這使得應用程序功能正常。感謝您的回覆!
管理員可以在每個單獨的密鑰上覆蓋訪問權限。這個名單將是最高的。運行regedit.exe,右鍵單擊密鑰Permissions。 –
對於我來說,這恐怕不是一個可行的解決方案。此應用程序也將在我的其他電腦上運行,因此更改每臺電腦的權限不是一種選擇。感謝您的建議。 – arebokert
@arebokert這不是漢斯所說的。漢斯表示,您的註冊表有可能被拒絕您的用戶權限來執行您正在嘗試的權限。在這種情況下,不要求其他解決方案會有所幫助。如果安全性拒絕你訪問,你不能繞過它。如果可以的話,它不會是這個安全的。 –