您可以通过将startInfo对象的Verb属性设置为’runas’来指示应使用提升的权限启动新进程,如下所示:
startInfo.Verb = "runas";
这将导致Windows表现为好像已使用“以管理员身份运行”菜单命令从资源管理器启动了该过程。
这确实意味着将出现UAC提示,并且需要用户确认:如果这是不希望的(例如,因为它将在冗长的过程中发生),则需要使用以下命令运行整个主机过程:通过创建和嵌入应用程序清单(UAC)来提高权限,以要求执行“
highestAvailable”执行级别:这将导致UAC提示在您的应用程序启动后立即出现,并使所有子进程以提升的权限运行而无需其他提示。
编辑:我看到您刚刚编辑您的问题,以指出“
runas”不适用于您。确实很奇怪,因为它应该这样做(并且在几个生产应用程序中对我也是如此)。但是,通过嵌入清单来要求父进程在提升权限的情况下运行应该是可行的。



