【问题标题】:What do I need to do to make sure my app launches as Admin?我需要做些什么来确保我的应用程序以管理员身份启动?
【发布时间】:2010-02-22 17:13:32
【问题描述】:

我正在编写一个应用程序,它允许您将 wiimote 中的按钮编写成 PC 上的操作脚本。目前支持主遥控器的所有功能,扬声器除外。

现在,当我在打开 UAC 的 Vista 上运行它时遇到了麻烦。

每当 UAC 窗口获得焦点时,我的应用程序都无法成功移动鼠标。例如,当安装程序运行时,我必须使用键盘进行导航。

  1. 以管理员身份运行该应用程序会解决我的问题吗?(在某个时间点,我能够成功地将鼠标移到 UAC 密码输入框上)

  2. 如何构建一个清单来告诉 Windows“以管理员身份运行”?

  3. 如果我强烈命名我的程序集,如何将此清单嵌入到我的应用中?

  4. 如何使用 Authenticode 证书签署我的应用程序?

编辑:

好的,经过一些更广泛的研究,我发现:

http://msdn.microsoft.com/en-us/library/bb756929.aspx

<requestedExecutionLevel
    level="asInvoker|highestAvailable|requireAdministrator"
    uiAccess="true|false"/>

但是,文章说:

带有 uiAccess 标志的应用程序 设置为 true 必须是 Authenticode 签署以正常启动。此外, 该应用程序必须位于 文件系统中受保护的位置。 \Program Files\ 和 \windows\system32\ 目前是两个允许的 受保护的位置。

我已编辑问题以反映新的发展。

【问题讨论】:

    标签: uac manifest


    【解决方案1】:

    3:这取决于您的开发环境。如果您找不到嵌入清单的选项,则可以将其作为外部清单文件与 .exe 一起部署。例如,如果您的 .exe 名为 MyProg.exe,请将清单放在名为 MyProg.exe.manifest 的文件中

    请注意,自 Windows Server 2003 及更高版本以来,任何内部清单都优先于外部清单。

    还有 MT.exe 工具。

    4:参见例如http://www.tech-pro.net/code-signing-for-developers.html

    【讨论】:

    • 是的,我把它全部编译并工作了,但我仍然需要为证书付费。 Windows 不允许我信任自签名证书。
    • 如果您的应用程序是开源的,www.certum.eu 提供所有 Windows 版本都信任的免费证书。否则,我自己觉得 Comodo 是最合理的,尤其是通过提供相同证书但价格更低的 Comodo 附属公司。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-18
    • 2023-03-29
    • 2013-08-01
    • 2013-08-13
    • 1970-01-01
    • 2015-08-05
    相关资源
    最近更新 更多