2010-10-07 53 views
0

我有一个客户端应用程序,它从服务器下载Nullsoft安装程序,并将该安装程序作为外部过程运行,其动词设置为“runas”。 Nullsoft安装程序在脚本中也有一行请求提升特权。在Windows 7上,这有时会起作用 - Windows显示UAC对话框,单击“确定”允许安装程序运行。但其他时候,UAC对话框永远不会显示,因此安装程序永远不会启动。如果我手动双击相同的安装程序,它总是有效的,即UAC对话框出现等等。最容易混淆的部分是这种行为不一致,在同一台机器上使用完全相同的UAC设置,这有时会起作用并挂起另一台机器倍。我也尝试过不同的UAC等级,但它仍然是不可或缺的。有任何想法吗?C#,UAC,安装程序,Windows 7

回答

2

你对RequestExecutionLevel设置了什么? 只需将其设置为“RequestExecutionLevel admin”就足够了,不需要使用runas谓词,只需使用ShellExecute启动该进程即可。 (RequestExecutionLevel仅处理Vista,稍后UAC处于打开状态时,请使用userinfo nsis插件来覆盖那些其他情况)