启动隐藏的控制台进程,但仍然有 UAC 提示
Posted
技术标签:
【中文标题】启动隐藏的控制台进程,但仍然有 UAC 提示【英文标题】:Launching hidden console process, but still with UAC prompt 【发布时间】:2018-01-08 03:23:26 【问题描述】:我正在尝试启动一个隐藏的控制台应用程序,但要求该应用程序具有提升的权限。
我已经成功地让 UAC 提示出现,但是当我尝试隐藏进程时无法让它出现。
ProcessStartInfo proc = new ProcessStartInfo();
proc.UseShellExecute = false;
proc.FileName = "C:/example.exe";
proc.CreateNoWindow = true;
proc.Verb = "runas";
这将导致在后台启动一个进程,除非没有出现提示(并且没有提升的权限)。如果我将 UseShellExecute 更改为 true,则会出现 UAC 提示,但控制台窗口也是可见的。
【问题讨论】:
您可以使用 Win32 API ***.com/a/3571628/495455 隐藏控制台窗口 【参考方案1】:您需要将 WindowStyle
设置为 ProcessWindowStyle.Hidden
,如 Jexus Manager 所示,
https://github.com/jexuswebserver/JexusManager/blob/be90688abd03780a714dc401054e22fa4afa2be3/Microsoft.Web.Administration/IisExpressServerManager.cs#L41
【讨论】:
以上是关于启动隐藏的控制台进程,但仍然有 UAC 提示的主要内容,如果未能解决你的问题,请参考以下文章
c#在以管理员权限运行控制台命令时,怎么不让它弹出uac提示框?