我正在尝试使用System.Diagnostics.Process类在远程计算机上创建进程。我能够创建一个过程。但是问题是,创建服务需要很长时间,并且会显示控制台窗口。另一个烦人的事情是控制台窗口显示在我的Windows窗体顶部,而我无法对该窗体执行任何其他操作。我已将所有属性设置为CreateNoWindow = true,proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden但仍然显示控制台窗口。即使我已经将输出和错误重定向到单独的流,但没有运气。还有其他隐藏控制台窗口的方法吗?请帮帮我。这是我用来执行sc命令的代码部分。Process proc = new Process();proc.StartInfo.UseShellExecute = false;proc.StartInfo.CreateNoWindow = true;proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;proc.StartInfo.FileName = "sc";proc.StartInfo.Arguments = string.Format(@"\\SYS25 create MySvc binPath= C:\mysvc.exe");proc.StartInfo.RedirectStandardError = false;proc.StartInfo.RedirectStandardOutput = false;proc.StartInfo.UseShellExecute = false;proc.StartInfo.CreateNoWindow = true;proc.Start();proc.WaitForExit();
3 回答
猛跑小猪
TA贡献1858条经验 获得超8个赞
我对这个答案很不走运,因为该过程(Wix light.exe)本质上是在吃午餐,而不能及时回家吃晚饭。但是,以下对我来说效果很好:
Process p = new Process();
p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
// etc, then start process
慕标琳琳
TA贡献1830条经验 获得超9个赞
这应该工作,尝试;
添加系统参考。
using System.Diagnostics;
然后使用此代码在隐藏的CMD窗口中运行命令。
Process cmd = new Process();
cmd.StartInfo.FileName = "cmd.exe";
cmd.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
cmd.StartInfo.Arguments = "Enter your command here";
cmd.Start();
- 3 回答
- 0 关注
- 3781 浏览
添加回答
举报
0/150
提交
取消