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

时间:2010-02-22 17:13:32

标签: uac manifest

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

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

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

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

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

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

  4. 如何使用Authenticode证书对我的应用程序进行签名?

  5. 编辑:

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

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

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

    然而,文章说:

      

    带有uiAccess标志的应用程序   设置为true必须是Authenticode   签名开始正常。此外,   应用程序必须驻留在   受保护的文件系统位置。   \ Program Files \和\ windows \ system32 \   目前是两个允许的   受保护的地点。

    我编辑了这个问题以反映新的发展。

1 个答案:

答案 0 :(得分:2)

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

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

还有MT.exe工具。

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