2011-07-14 135 views
0

當我執行一個exe文件(PVFProject15.exe)時,它從輸入文件(inputFile.txt)中讀取數據並將結果打印到另一個文件(outputFile.txt)中。當我雙擊它時,exe文件運行良好;它將打開控制檯窗口,該窗口保持打開狀態,直到創建輸出文件。但是,當我從c#運行(PVFProject15.exe)時,控制檯窗口打開和關閉非常快,輸出文件從不創建。從c運行exe文件的問題#

我真的很感激你的幫助,因爲我一直在努力解決這一整天,從來沒有找到答案。以下是我的代碼如下。

private void button1_Click(object sender, EventArgs e) 

{ 
     Process runFortran = new Process(); 
     try 
     { 
      runFortran.StartInfo.FileName = "C:\\temp\\trial\\PVFProject15.exe"; 
      runFortran.Start(); 
      runFortran.WaitForExit(); 
     } 
     catch (Exception exc) 
     { 
      MessageBox.Show(exc.Message); 
     } 
    } 

在此先感謝您。

SAFAA

+0

我試着用記事本你的代碼,和其他控制檯應用程序的我已經創建,它似乎工作正常。你有PVFProject15.exe的代碼嗎? – Mike

+2

您沒有將StartInfo.WorkingDirectory設置爲@「c:\ temp \ trial」。許多寫得不好的程序無法生存下來。 –

回答

0

如果PVFProject15.exe寫入到文件中使用相對路徑,從你開始你的主要程序,引導程序目錄去找outputFile.txt

1

大概需要PVFProject15.exe當前目錄設置爲C:\ TEMP \審判

0

我也有同樣的問題見面,當我嘗試開始從我的C#基於軟件的一些.exe和名.hta。 我開始尋找Mike Mozhaev的解決方案和答案,幫助我找到正確的方向。 在你的代碼需要使用: StartInfo.WorkingDirectory = Convert.ToString(System.IO.Directory.GetParent(appPath));

所以代碼必須是這樣的:

if (File.Exists(appPath)) 
       { 
        Process runProcess = new Process(); 
        runProcess.StartInfo.WorkingDirectory = Convert.ToString(System.IO.Directory.GetParent(appPath)); 
        runProcess.StartInfo.UseShellExecute= true; 
        runProcess.StartInfo.FileName = appPath; 
        runProcess.Start(); 

       }