由于我想在此过程中运行具有管理权限的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();
但是,如果我评论私有代码没有弹出闪烁。
答案 0 :(得分:1)
我认为你应该设置WorkingDirectory
属性。来自 MSDN ;
如果UserName和Password为,则必须设置WorkingDirectory属性 提供。如果未设置该属性,则默认工作目录为 %SYSTEMROOT%\ SYSTEM32。
如果UserName属性不为null或为空字符串,则为 UseShellExecute属性必须为false或者 当时会抛出InvalidOperationException 调用Process.Start(ProcessStartInfo)方法。
答案 1 :(得分:1)
尝试将ProcessStartInfo.UseShellExecute
设置为false
(默认情况下为true
)。
ProcessStartInfo.CreateNoWindow Property说:
如果UseShellExecute属性为true或UserName和Password 属性不为null,将忽略CreateNoWindow属性值 并创建一个新窗口。