我正在编写一个应用程序,允许您将wiimote中的按钮编写为PC上的操作。它目前支持主遥控器的所有功能,但扬声器除外。
现在,当我在启用了UAC的Vista上运行它时,我遇到了麻烦。
任何时候UAC窗口都有焦点,我的应用程序无法成功移动鼠标。例如,运行安装程序时,我必须使用键盘进行导航。
以管理员身份运行应用程序解决了我的问题吗?(在某个时间点,我能够成功地将鼠标移到UAC密码输入框上)
如何构建一个告诉Windows“以管理员身份运行”的清单?
如果我强烈命名我的程序集,如何将此清单嵌入我的应用程序?
如何使用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 \ 目前是两个允许的 受保护的地点。
我编辑了这个问题以反映新的发展。
答案 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