2013-11-09 23 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