确定按钮上的用户帐户控制

时间:2012-12-10 14:36:19

标签: c# windows winforms uac

我已经通过互联网研究了表单确定按钮上的UAC功能但无法获取信息。与实施UAC相关的所有信息都是使用管理权限重新启动应用程序。

我的要求是制作应用程序,当用户单击带有Shield Icon的OK按钮时,用户将能够通过提升用户权限在Windows注册表中保存一些信息,但我不想重新启动具有管理员权限的应用

2 个答案:

答案 0 :(得分:7)

您正在重新启动应用程序(或启动帮助应用程序)。它是在启动导致UAC确认屏幕出现的应用程序时请求提升权限。显示屏蔽图标的目的是让用户知道确认屏幕即将到来。

您不必重新启动您的应用程序。如果您的应用程序允许多个实例,则可以使用命令行参数启动第二个副本,以指示要进行的注册表更改。或者,您可以拥有一个帮助应用程序来执行管理工作,并根据需要启动它。帮助应用程序不需要创建或显示窗口;它可以完全是后台操作。

答案 1 :(得分:-1)

您可能应该添加应用程序清单并要求管理员权限:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
        <security>
            <requestedPrivileges>
                <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
            </requestedPrivileges>
        </security>
    </trustInfo>
</assembly>

修改

这可能不是最好的解决方案,因为整个应用程序在提升的权限下运行,这可能是一个安全漏洞。