弹出窗口触发,如果我运行进程与管理权限c#

本文关键字:进程 管理 管理权 权限 运行 窗口 如果 | 更新日期: 2023-09-27 17:51:15

由于我想在进程中以管理权限运行cmd,但弹出窗口打开甚至将WindowStyle设置为隐藏

 ProcessInfo = new ProcessStartInfo("cmd.exe", "/c " + @"cscript.exe DTCSECURITY.vbs");
 ProcessInfo.CreateNoWindow = true;.
 ProcessInfo.WindowStyle = ProcessWindowStyle.Hidden;
 // Here with i pass the privillage
 ProcessInfo.UserName = @"administrator";
 ProcessInfo.Password = StringToSecureString("password12$");    
 process = Process.Start(ProcessInfo);
 process.WaitForExit();

但是如果我注释了特权代码,就不会弹出闪烁

弹出窗口触发,如果我运行进程与管理权限c#

我认为你应该设置WorkingDirectory属性。从 MSDN ,

WorkingDirectory属性必须设置,如果UserName和Password为提供。如果未设置该属性,则默认工作目录为% SYSTEMROOT % ' system32系统。


如果UserName属性不是null或空字符串,则属性UseShellExecute必须为false,否则为将抛出InvalidOperationExceptionProcess.Start(ProcessStartInfo)方法被调用

尝试将ProcessStartInfo.UseShellExecute设置为false(默认为true)。

ProcessStartInfo。CreateNoWindow属性显示:

如果UseShellExecute属性为true或UserName和Password属性不为空,则忽略CreateNoWindow属性值并创建一个新窗口。