从注册表中删除文件夹 – 权限问题
我试图从注册表中删除一个文件夹。 假设我要删除该文件夹
Software\TeamViewer
我已经编写了代码但它给出了一个例外情况“你不能写”。 我猜它在权限和访问权限方面存在某种问题。
string keyapath = @"Software\TeamViewer"; RegistryKey regKeyAppRoot = Registry.CurrentUser.OpenSubKey(keyapath); regKeyAppRoot.DeleteSubKeyTree(keyapath);
如何授予我的软件从注册表中删除文件夹的权限?
编辑:我有我的系统的管理员权限。 我是否仍需要通过我的代码专门为应用程序分配权限?
带有一个参数的OpenSubKey
方法打开用于读取的键。 使用OpenSubKey
方法的其他变体:
OpenSubKey(String, Boolean)
– 对第二个参数传递true
以使用通用写访问权打开密钥
OpenSubKey(String, RegistryKeyPermissionCheck)
– 允许对子键的权限检查进行一些精确控制
OpenSubKey(String, RegistryKeyPermissionCheck, RegistryRights)
– 如上所述,但您可以准确指定所需的权限。
有关详细信息,请参阅MSDN
您的应用程序需要admin
权限来更改注册表中的数据。 要获得这些权限,您的应用程序的主要function需要包含一些值,这些值告诉Windows应用程序需要更多权限。
Google uac .net
或uac c#
(UAC =用户帐户控制)
或者只是看看这篇文章。
创建和嵌入应用程序清单(UAC)
您应该在项目中创建一个清单文件(右键单击您的项目,添加新项目,清单文件)。 然后打开它,在里面你会看到这个:
// Put this to invoke UAC for admin rights
然后,当您运行应用程序时,它将提示您输入uac,然后程序将以管理员身份运行,希望能够为您提供所需的访问权限。
希望这可以帮助!