我正在尝试启动隐藏的控制台应用程序,但要求该应用程序具有提升的权限。
我已经成功地设法让UAC提示出现,但是当我尝试隐藏启动进程时无法让它出现。
ProcessStartInfo proc = new ProcessStartInfo();
proc.UseShellExecute = false;
proc.FileName = "C:/example.exe";
proc.CreateNoWindow = true;
proc.Verb = "runas";
这将导致一个进程在后台启动,除非没有出现提示(并且没有提升的权限(。如果我将 UseShellExecute 更改为 true,则会出现 UAC 提示符,但控制台窗口也可见。
将WindowStyle
设置为 ProcessWindowStyle.Hidden
,如 Jexus Manager 所示,
https://github.com/jexuswebserver/JexusManager/blob/be90688abd03780a714dc401054e22fa4afa2be3/Microsoft.Web.Administration/IisExpressServerManager.cs#L41