从注册表中删除文件夹 – 权限问题

我试图从注册表中删除一个文件夹。 假设我要删除该文件夹

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 .netuac c# (UAC =用户帐户控制)

或者只是看看这篇文章。

创建和嵌入应用程序清单(UAC)

您应该在项目中创建一个清单文件(右键单击您的项目,添加新项目,清单文件)。 然后打开它,在里面你会看到这个:

       // Put this to invoke UAC for admin rights     

然后,当您运行应用程序时,它将提示您输入uac,然后程序将以管理员身份运行,希望能够为您提供所需的访问权限。

希望这可以帮助!