2013-10-01 55 views
0

爲了簡化問題,我在WAMP Windows XP系統上從PHP內部運行批處理文件我試圖從PHP文件啓動notepad.exe。我有一個包含PHP文件....從PHP文件啓動notepad.exe

<?php 
exec('c:\windows\notepad.exe'); 
?> 

當我運行PHP文件,我可以看到在任務管理器Notepad.exe進程開始,但記事本本身並沒有打開。我究竟做錯了什麼?

+0

向我們展示您的代碼和錯誤。 – Aristona

+5

您無法從服務中啓動交互式程序(例如記事本)。如果那個程序彈出了一個模型對話框或者其他的東西,這樣的事情會完全殺死一個服務器。 –

+0

你介意描述你試圖「簡化」的問題嗎? – nietonfir

回答

1

你想要做的不是正確的方式,記事本應用程序不是在後臺執行操作的過程。但是如果你想執行一個需要時間的命令,那麼你可以在後臺運行外部程序。意味着PHP不會等待外部程序終止。

$cmd = "somecommand"; 
if (substr(php_uname(), 0, 7) == "Windows"){ 
    pclose(popen("start /B ". $cmd, "r")); 
} 
else { 
    exec($cmd . " > /dev/null &"); 
} 

希望這會幫助你。

0

如果您希望記事本以交互方式運行,則可以使用PSEXEC

您可以使用exec命令從PHP運行批處理文件,並且psexec可以從批處理文件中交互式運行應用程序。

+0

形成此解決方案無法正常工作。我看到運行例如記事本我的任務列表,但我沒有看到我的系統中的記事本窗口。 – Peter