积极答复者
下面代码抛出异常,请问如何解决

问题
答案
-
你好:
这个问题的原因是你当前的用户没有访问这个新创建的SubKey的权限,好像默认新创建的注册表项继承了父项的访问权限。在你的代码中父项就是"ClassesRoot"。
这里给你一个解决方案:
1. 用一个管理员权限的账户登录这台机器。开始>运行,输入regedt32打开注册表编辑器。
2. 右击HKEY_CLASSES_ROOT,选择Permissions
3. 点击Advanced(高级),双击你要赋予权限的账户,在Basic Permissions(基本权限)下选择Full Control(完全控制),并且将下方的复选框勾上,最后点击确定。
然后再试一下你的代码看看是不是已经可以创建并且删除注册表项了呢。
Caillen
<THE CONTENT IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, WHETHER EXPRESS OR IMPLIED>
Thanks
MSDN Community Support
Please remember to "Mark as Answer" the responses that resolved your issue. It is a common way to recognize those who have helped you, and makes it easier for other visitors to find the resolution later.- 已标记为答案 Barry WangModerator 2013年10月7日 10:11
全部回复
-
你好:
这个问题的原因是你当前的用户没有访问这个新创建的SubKey的权限,好像默认新创建的注册表项继承了父项的访问权限。在你的代码中父项就是"ClassesRoot"。
这里给你一个解决方案:
1. 用一个管理员权限的账户登录这台机器。开始>运行,输入regedt32打开注册表编辑器。
2. 右击HKEY_CLASSES_ROOT,选择Permissions
3. 点击Advanced(高级),双击你要赋予权限的账户,在Basic Permissions(基本权限)下选择Full Control(完全控制),并且将下方的复选框勾上,最后点击确定。
然后再试一下你的代码看看是不是已经可以创建并且删除注册表项了呢。
Caillen
<THE CONTENT IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, WHETHER EXPRESS OR IMPLIED>
Thanks
MSDN Community Support
Please remember to "Mark as Answer" the responses that resolved your issue. It is a common way to recognize those who have helped you, and makes it easier for other visitors to find the resolution later.- 已标记为答案 Barry WangModerator 2013年10月7日 10:11
-
你好:
这个问题的原因是你当前的用户没有访问这个新创建的SubKey的权限,好像默认新创建的注册表项继承了父项的访问权限。在你的代码中父项就是"ClassesRoot"。
这里给你一个解决方案:
1. 用一个管理员权限的账户登录这台机器。开始>运行,输入regedt32打开注册表编辑器。
2. 右击HKEY_CLASSES_ROOT,选择Permissions
3. 点击Advanced(高级),双击你要赋予权限的账户,在Basic Permissions(基本权限)下选择Full Control(完全控制),并且将下方的复选框勾上,最后点击确定。
然后再试一下你的代码看看是不是已经可以创建并且删除注册表项了呢。
Caillen
<THE CONTENT IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, WHETHER EXPRESS OR IMPLIED>
Thanks
MSDN Community Support
Please remember to "Mark as Answer" the responses that resolved your issue. It is a common way to recognize those who have helped you, and makes it easier for other visitors to find the resolution later.如果将vs2010以管理员身份启动,之后运行本程序。
是否可以正常呢?
-
管理员身份也是不行的,我刚测试的时候就是使用的管理员登陆的,测试的时候报Access Denied,按照我给你回复的方法做了之后,就不会报错了。
好像默认管理员身份也是不可以直接添加删除HKEY_CLASSES_ROOT下面的注册表选项的。
你自己测试一下就知道了,自己的测试环境自己最清楚。
对注册表进行编程的时候要特别注意,有一些比较危险的操作可能会导致系统出现问题。不到万不得已尽量别操作注册表。
Caillen
<THE CONTENT IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, WHETHER EXPRESS OR IMPLIED>
Thanks
MSDN Community Support
Please remember to "Mark as Answer" the responses that resolved your issue. It is a common way to recognize those who have helped you, and makes it easier for other visitors to find the resolution later.
- 已编辑 CaillenModerator 2013年9月24日 6:45 edit