2017-06-08 24 views
1

我有一個.exe文件。我想用Process.Start()命令運行.exe文件。 .exe文件在執行時產生兩個文件,一個是.xls文件,另一個是.htm文件。當我通過.net代碼運行.exe文件時,應該生成的兩個文件不會生成。下面是我的代碼:process.start()方法不生成文件

static void Main(string[] args) 
    { 
     Process.Start(@"C:\Test\test.exe"); 
} 

如果得到執行的過程中,我不知道,但我沒有看到任何錯誤。另外,我沒有看到任何文件。如果我手動運行該進程,則可以看到.exe文件所在的同一文件夾中生成的兩個文件。

任何幫助將不勝感激。

+0

你可以用與嘗試搭上了線,看看是否有異常情況發生? –

+1

如果你只是雙擊Windows資源管理器中的exe文件,會發生什麼情況?它會生成你的文件嗎?如果沒有,我不希望調用Process.Start是任何不同的。 – mason

+0

*「我可以看到在.exe文件所在的同一文件夾中生成的兩個文件」* Test.exe如何確定在哪裏創建文件?如果它基於當前目錄,那麼它們可能在bin文件夾中創建,而不是可執行文件所在的位置。 –

回答

0

嘗試等待的過程來完成:

Process.Start(@"C:\Test\test.exe").WaitForExit(); 

調試好:

Process process = Process.Start(@"C:\Test\test.exe"); 
int id = process.Id; 
Process runningProc = Process.GetProcessById(id); 
runningProc.WaitForExit(); 
+0

爲什麼你要做'Process.GetProcessById(id)'的額外步驟,爲什麼不只是'process.WaitForExit()'? –

+1

'Process.GetProcessById(id);'如果找不到id,則會發出異常。這允許您檢查過程是否實際運行。 – RoJaIt

+1

如果你有一個通過'process.Id'的id,這意味着它在某個點上運行。如果程序沒有運行,你不會得到一個id。 –