2016-11-21 54 views
0

我很好奇如何實現這一點。我甚至不知道要谷歌什麼。Php發送命令到C++ Windows應用程序

如果我有一個web服務器,我想用一個按鈕做一個php頁面。當單擊該按鈕時,我在遠程機器上運行的C++應用程序將執行一個功能。

什麼是最簡單的方法來完成這個?這個庫是否已經存在?如果不是,我應該谷歌什麼才能開始呢?

謝謝。

+0

遠程機在服務器上運行還是分開? –

+0

Google適用於:Windows通信基礎,dcom和遠程計算機上的win32啓動過程 – selbie

+0

如果應用程序使用C語言編寫,該怎麼辦? – user4581301

回答

1

使用PHP-反引號

http://php.net/manual/de/language.operators.execution.php

你可以調用任何可執行文件,並把他們的輸出變量。

例如,

$結果= ` mycppapp.exe `

問候

+0

我認爲問題不是關於開始,而是關於控制已經運行的應用程序?另外在最初的問題中,它清楚地表明Windows主機是遠程的。所以反引號在這裏不是解決方案。 –

+0

我不確定這對我有用。我希望它能夠在已經運行的應用程序中執行代碼/函數。不要啓動一個全新的流程。 – mocode9

+0

最好的方法是在某個端口上創建一個監聽器。然後通過該端口發送一個請求。這將觸發該功能。似乎有像這個http://www.sfml-dev好插件。org /似乎簡化了這樣的努力 – Daidon

0

這一定程度上取決於你的C++應用程序。
但基本的想法是這樣的。
在你的html中定義了一個按鈕,當點擊按鈕時 - 你啓動AJAX GET或POST到你的PHP程序(有可能的變化,你可以簡單地通過表單來完成)。
反過來,你的PHP可以啓動連接到遠程Windows主機,這是它變得棘手。

  • 您的Windows C++應用程序能否通過網絡接收命令?換句話說它是否有任何REST API?或者通過TCP控制它的任何其他手段?
  • 你到底想做什麼?只需啓動這個應用程序或以某種方式控制它?

如果它具有REST API - 那麼它很簡單。你可以用像php curl這樣簡單的東西開始發送REST消息。 如果它沒有任何遠程控制API和只有CLI - 那麼你將不得不開始使用遠程PowerShell,我會假設。
類似這樣的東西powershell - execute cmdlet remotely with php

+0

其餘依賴於cpprest DLL,所以我的客戶並不期待爲項目添加更多的dll。但是,我的C++應用程序可以訪問網絡。我不知道如何將它連接到一個PHP頁面。也許當按鈕被點擊在PHP頁面上時,它可以寫出一個變量到另一個PHP頁面。然後,每隔一段時間,我的C++應用程序就會連接到該頁面並檢查變量。如果它是真的它執行我的功能。這會很好還是有更好的方法? – mocode9

+0

如果您可以開始在您的C++應用程序中監聽套接字 - 那麼您可以通過網絡接收消息。我不認爲採用其他方式會是一個很好的解決方案,因爲您可能會不斷地在服務器端查詢可能不存在的事件。你可以在C++和PHP中做一個簡單的模擬應用程序。 C++將開始在消息的某個端口上偵聽,並且PHP會發送這樣的消息。 –