2012-07-10 52 views
1

我在stackoverflow上看到很多帖子,但沒有一個幫助。我試圖運行一個.NET Windows窗體應用程序(它不包含任何forms/GUI/dialogs/so,但由於應用程序的性質,它必須是Windows窗體)。我試過shell_exec()exec()passthru()等,但他們都失敗了(他們需要無限長的時間和PHP腳本永遠不會終止)從PHP調用Windows Forms .NET EXE

於是,我試圖運行一個簡單的C++(非託管)控制檯應用程序 - 它的工作,回到正確的輸出和返回代碼。

於是,我想,也許我可以打電話給這個C++ EXE,讓它進一步調用Windows應用程序(即在C++中使用SYSTEM("path_to_exe.exe");) 它工作得很好,當我編譯它,但同樣,

PHP呼叫時這個控制檯(用新的代碼來運行一個.NET EXE),PHP再次需要無限的時間並且永不停止。爲什麼?

是否有任何一種方法可以在PHP上成功運行我的.NET EXE服務器?

非常感謝!

+3

PHP正在等待進程退出並且不這樣做。你正在運行什麼樣的程序? – Jon 2012-07-10 07:33:42

+0

沒錯。謝謝喬恩! 我想這個過程沒有正確終止 - 現在它確實:) – 2012-07-10 10:54:06

+0

請不要將問題改爲「已解決」。通過點擊帖子旁邊的複選標記,發佈自己的答案或接受發佈的答案。 – LarsTech 2012-07-10 12:37:25

回答

1

「是否有任何一種方法可以成功地在PHP服務器上運行我的.NET EXE?」 :您的EXE已經在運行!

所以問題出在你的.NET EXE中,我不知道它是什麼樣的EXE,但你可以使用腳本編寫腳本來執行它,然後在X秒後關閉這個過程,這裏有一段代碼(不要別忘了編譯它):

Run("C:\Program Files (x86)\K-Lite Codec Pack\Media Player Classic\mpc-hc.exe"); // You may use a relative path ! 
Sleep(5000); // Wait for 5 seconds 
ProcessClose("mpc-hc.exe"); // Close the process 
+0

嗨,行爲中的問題是在EXE - 它沒有正確終止和PHP等待它關閉。現在已經修復了。謝謝您的回答! – 2012-07-10 10:56:49