2012-07-23 59 views
0

我想通过我的一个c#程序使用命令提示符命令,因此我查找了一些简单的编码。我从字面上拉出了4行代码,这些代码创建了进程类和processstartinfo类的新实例,然后将文件名设置为cmd,将参数设置为我的命令。只要process.Start()被调用,而不是按预期创建一个窗口,就会打开无数个命令提示符窗口,直到必须重新启动计算机。我可能会补充说,我将​​代码隔离到了自己的程序中,以确保它不是我的程序的外部代码来创建这种效果,而且我仍然得到相同的结果。有任何想法吗?Process.Start()创建无限窗口

编辑:排除主要方法/类,这是我使用的确切代码。它被从网上一字一字(除参数):

System.Diagnostics.Process process = new System.Diagnostics.Process(); 
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo(); 
startInfo.FileName = "cmd.exe"; 
startInfo.Arguments = "/C tree"; 
process.StartInfo = startInfo; 
process.Start(); 
+2

添加一些代码来检查。 – Matzi 2012-07-23 13:05:17

+1

也许向我们显示违规代码? – Thelonias 2012-07-23 13:05:57

+0

把你的代码,如果它有一些问题。否则它似乎是在你的电脑中的一些病毒感染。 – 2012-07-23 13:07:04

回答

2

没有看到你使用的代码是不可能分辨的。

尝试使用这个代替

ProcessStartInfo info = new ProcessStartInfo(); 
info.Arguments = "/C echo your command"; 
info.WindowStyle = ProcessWindowStyle.Hidden; 
info.CreateNoWindow = true; 
info.FileName = "cmd.exe"; 
Process.Start(info); 

或者,如果你使用它不止一次使之成为一个方法。

+0

此代码与我使用的代码之间的唯一区别是您隐藏窗口的事实。现在,我可能不是编码方面的专家,但常识会规定,解决问题并使其不可见并不会改变它仍然在那里(尽管看不见)的事实。 – Ari 2012-07-23 13:27:53

+0

@jaykreeler确实如此,但这是我在发布任何代码之前呈现的解决方案,因此我不知道您正在运行的代码。这对我有用,所以我猜它值得一试。 – 2012-07-23 13:36:18