有没有办法来标记一个.EXE要求它作为pipe理员运行? 以便:
如果UAC设置为runas admin而没有任何提示 – 它以admin身份运行。
如果用户无法运行pipe理员(请求不同的login),则以用户身份运行。
我知道如何用2个.exe程序来做到这一点。 但是我想用一个做。 该程序input用户的许可证密钥。 在HKLM中如果应用程序具有pipe理权限(所有用户都有密钥)。 在HKCU如果没有pipe理权限。
Windows服务启动/停止另一项服务
以用户身份运行我的程序
Windows安装程序检测:什么是关键字的完整列表?
XAMPP错误解决scheme? 我已经安装在我的Windows XP双引导机器上
什么是导致桌面盾牌图标覆盖* SOME *桌面上
如果用户拒绝提升提示,则无法标记可执行文件,以便在没有管理员权限的情况下继续运行可执行文件。 但是,一个进程可以尝试从具有提升权限的相同可执行文件中启动自己的第二个副本,并将作业传递给新进程(如果成功启动)或继续工作(如果不成功)。
看到这个答案是一个如何提升自己的例子。
您可以通过请求highestAvailable而不是requireAdmin来获得1和2。 我不喜欢它,因为在整个应用程序的其余部分,你可能需要测试,看看你是否升高。
你不能#4。 如果应用程序尝试启动,显示UAC对话框,并且用户拒绝UAC,则应用程序不会启动。 如果你只有一部分需要提升的应用程序,那么你最好将这个部分移动到一个单独的exe文件中,并在需要提升的exe文件上放置一个清单,然后让主应用程序不需要它。