2013-07-03 31 views
1

我知道這可能是一個非常普遍的問題,但我想要做的是從php webapp啓動一個.exe程序。從php webapp打開.exe並登錄

.exe的第一個屏幕是帶有用戶名和密碼的登錄表單。 我想讓php代碼打開.exe程序,並將用戶名和密碼的相應值插入到它們的字段中(這些值存儲在mysql中)。

因爲我沒有需要打開的軟件,所以我知道這可能看起來是一個模糊的問題,但我正在尋找一種通用的方法或一些指針來做到這一點。

+0

這的確是一個模糊的問題,而是關心更具體? 'system','exec','''/ *反引號* /'和'proc_open'都是候選項...... exe是GUI應用程序還是cmd應用程序?它是否可訪問,並且它是否與腳本運行在同一臺服務器上?檢查[這個問題](http://stackoverflow.com/questions/10102952/proc-open-interaction),和[這個問題](http://stackoverflow.com/questions/9843550/load-profile-with-proc - 開放),兩者都是我的,一年前問過,但仍然適用 –

+0

好吧,所以[第一個鏈接的問題](http://stackoverflow.com/questions/10102952/proc-open-interaction)仍然適用,如果這是一個非GUI應用程序,你應該能夠從那裏拿走它。 –

+0

該webapp將託管在外部服務器上,但該.exe將在PC上運行。 .exe將在Windows PC上運行,並具有預定的路徑,如「c:\ Program files \ soft \ theexe.exe」。 php腳本有這個路徑,需要打開它用來啓動命令的pc上的.exe。 –

回答

0

所以,在註釋中光/聊天,我們有你的問題下,使用phpseclib,你應該能夠連接到遠程計算機,這將運行該應用程序:

require_once('Net/SSH2.php'); 
$ssh = new Net_SSH2('winhostaddress'); 
//if needed: 
if (!$ssh->login('user', 'pass')) 
{ 
    exit('Failed to connect to win'); 
} 
$ssh->exec('C:\\Path\\to\\app.exe argument1 argument2 argument3'); 

這應該做訣竅。使用標誌時,如* NIX系統:ls -a,您應該知道Windows對應的是/。除此之外,這幾乎都是一樣的。在將客戶數據傳遞給可執行文件時,不要忘記escapeshellarg

含有空格的參數應該用雙引號分隔。
如果你不知道天氣或不是你啓動應用程序是您用於通過ssh連接的用戶訪問,試圖預先考慮給你的實際的命令:

runas /user:username C:\\Path\\To\\App.exe 

username是用戶您確定具有的適當權限。請注意,您可能會提示您輸入密碼。

對於任何其他問題,這裏的一些相關問題:

+0

謝謝你,現在很清楚,我會給它去一個 –

+0

@CristianBican:在SO,這是自定義[接受答案](http://meta.stackexchange.com/questions/5234/how-does接受答案的工作),而不是發佈「坦克」 - 評論。如果你這樣做,那裏也有+2的代表:) –

+1

對不起有點新的:) –