代码之家  ›  专栏  ›  技术社区  ›  John Gietzen

我需要做什么来确保我的应用程序以管理员身份启动?

  •  1
  • John Gietzen  · 技术社区  · 15 年前

    我正在编写一个应用程序,允许你将wiimote中的按钮脚本化到电脑上的动作中。它目前支持主遥控器的所有功能,除了扬声器。

    现在,当我在开启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"/>
    

    然而,文章说:

    设置为true必须是Authenticode 签名以正确启动。此外 应用程序必须驻留在 文件系统中受保护的位置。 \程序文件\和\windows\system32\ 受保护的地点。

    我对问题进行了编辑,以反映新的事态发展。

    1 回复  |  直到 15 年前
        1
  •  2
  •   mlaan    15 年前

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

    还有MT.exe工具。

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