我目前正在建立一個註冊表資源管理器,主要是因爲我想支持一些更好的搜索操作。像'查找所有'和正則表達式一樣。我面臨的一個問題是,某些鍵在打開時會引發安全異常。我曾嘗試使用管理員權限運行該應用程序,我的用戶帳戶也是管理員。我用「requireAdministrator」請求特權嵌入了一個清單。我也嘗試將ClickOnce安全設置設置爲完全信任,這與requireAdministrator不兼容,或者Visual Studio告訴我......似乎沒有任何東西可以幫助避免此異常。註冊表訪問異常問題
我只想遍歷所有的鍵。我不想添加/刪除鍵。如果用戶希望刪除密鑰並且沒有權限,則會顯示錯誤消息。我只是想能夠有無限制的閱讀權限。這可能嗎?
FTR:我在Win7 x64上使用Vs2010u,項目是用C#編寫的.net 4.0。如果註冊表能夠讀取所有密鑰,即使它不允許您編輯其中的一些密鑰。我們也可以製作一個應用程序來做同樣的事情,這似乎是合適的。儘管我發現它很困難,而且似乎也沒有任何真正的幫助。只有鏈接鏈接圈子,耶。
[編輯]
下面是讀取按鍵代碼:
private void IterateSubKeys(RegistryKeyModel key) {
var subKeys = key.Key.GetSubKeyNames();
var values = key.Key.GetValueNames();
foreach (var valuename in values) {
try {
var valueKind = key.Key.GetValueKind(valuename);
var value = key.Key.GetValue(valuename);
key.Values.Add(new RegistryValueModel(valuename, value, valueKind));
}
catch { }
}
foreach (var keyname in subKeys) {
try {
var subkey = key.Key.OpenSubKey(
keyname,
RegistryKeyPermissionCheck.ReadSubTree,
RegistryRights.ReadKey);
key.SubKeys.Add(new RegistryKeyModel(subkey));
}
catch { Console.WriteLine("Error reading key: {0}", keyname); }
}
}
你能否確認註冊表可以看到你的程序不能的密鑰?因爲有甚至註冊表鍵都看不到(但也許你的程序枚舉)? –