如果我使用管理员权限c#运行进程,则会弹出窗口触发器

时间:2013-01-09 14:06:09

标签: c# cmd

由于我想在此过程中运行具有管理权限的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();

但是,如果我评论私有代码没有弹出闪烁。

2 个答案:

答案 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属性值   并创建一个新窗口。