winform c#,不确定为什么HKEY_CURRENT_USER注册表项修改需要提升

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了winform c#,不确定为什么HKEY_CURRENT_USER注册表项修改需要提升相关的知识,希望对你有一定的参考价值。

我有一个小应用程序,需要在注册表中更改一些东西并在启动时打开,为此,我需要以管理员身份打开应用程序。

如果应用程序需要管理员权限,我不希望每次都询问用户。

我尝试添加清单文件并包含以下行:

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

此外,应用程序应该在其用户不是管理员的站点上工作

有没有办法做这样的事情?谢谢您的帮助

答案

这听起来好像是在试图绕过密钥上的安全令牌。这根本不可能。

如果用户不是管理员,则不会让他们编辑受ACL保护的密钥,只允许管理员更改密钥。如果可能,那么整个安全系统就完全崩溃了。

如果您的应用需要管理员权限,这是您在清单中请求的权限,那么每次启动时都会提示您。没有解决这个完全禁用UAC的问题(如果有的话,应用程序只会绕过UAC并使其无用)。

如果您真的需要这样做,我的方法是在安装程序中使用自定义操作修改ACL,保护有问题的密钥以允许用户修改它。那么您首先不需要主应用程序拥有管理员权限。

以上是关于winform c#,不确定为什么HKEY_CURRENT_USER注册表项修改需要提升的主要内容,如果未能解决你的问题,请参考以下文章

C# WinForm窗体设计器怎么显示网格

C# winform做打印预览和打印功能怎么做?

.NET中C/S结构,winform怎么在datagridview中添加键盘点击事件,并设定热键?

如何在C#WinForm桌面应用程序中存储MySql数据库连接字符串

在SerialPort.Close上C#Winform冻结

C#-WinForm-对话框控件