2013-11-09 26 views
0
private void button1_Click(object sender, EventArgs e) 
     { 
      if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK) 
      { 
       string fileName = openFileDialog1.FileName; 

       ProcessStartInfo info = new ProcessStartInfo(); 
       info.WindowStyle = ProcessWindowStyle.Hidden; 
       info.FileName = "WK01.exe"; 
       info.Arguments = "WK01.exe"; 
       info.Arguments = fileName; 
       Process p = new Process(); 

       p.StartInfo = info; 
       p.Start(); 
       p.WaitForExit(); 


      } 
     } 

当我运行这段代码,在p.Start();这段代码休息,因为我WK01.exe项目包含2个参数,一个是它的路径和第二个是我给它喜欢的图片或任何东西,当我运行它,并按下按钮时,它会要求我选择文件,当我选择该文件时,它会中断程序p.Start();程序违反工艺类

+0

为什么需要cmd.exe呢? – Agat

+0

并谈到“休息”......实际上发生的例外是什么? – Agat

+0

为什么cmd.exe? WK01是我的C++项目,它的获取命令行参数,第一个参数显然是它的路径,第二个是我的输入 – AHF

回答

1

这是因为有一个在您斌/调试没有wk01.exe可执行文件(或资料库/释放)文件夹。

如果需要,可以将其添加到项目文件(甚至作为参考)并标记为“复制到输出目录=始终复制”以自动执行该操作。

1

info.Arguments您已经更新了两次。所以只需要最后更新的值。通过2个参数你可以这样做,如下所示。

info.Arguments = "WK01.exe "+fileName; 

Here

+0

+1我同意你的意见。 –

+0

@Crud我的代码只适用于如果我在调试文件夹中添加图像的情况,以及如果我从其他文件夹中选择图像,它会给我中止重试的错误或忽略 – AHF