2016-11-21 51 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会发送这样的消息。 –