0

我希望能够修改 HKEY_CLASSES_ROOT 的所有子项。

我有以下清单代码:

<requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />

我有以下汇编代码:

[assembly: RegistryPermissionAttribute(SecurityAction.RequestMinimum, ViewAndModify = "HKEY_CLASSES_ROOT")]

这有效:

 Registry.ClassesRoot.CreateSubKey("._test");

但这失败了(除非密钥是通过编程方式创建的):

 RegistryKey key = Registry.ClassesRoot.OpenSubKey("any_key");
 key.CreateSubKey("._test");

用户决定选择哪个键,因此我无法写下:

[assembly: RegistryPermissionAttribute(SecurityAction.RequestMinimum, ViewAndModify = "HKEY_CLASSES_ROOT/desired_subkey")]

因为desired_subkey 是在程序执行期间动态选择的。

那么有什么想法吗?

4

1 回答 1

1

Registry.OpenKey(string)以只读方式打开密钥。您需要使用可以为您提供写访问权限的重载之一。

于 2013-11-03T02:55:05.593 回答