2016-11-21 9 views
0

Мне интересно, как этого добиться. Я даже не уверен, что делать с Google.Php отправить команду на C++ приложение Windows

Если у меня есть веб-сервер, и я хочу создать страницу php с помощью кнопки. Когда эта кнопка нажата, мое приложение C++, запущенное на удаленной машине, выполнит функцию.

Что было бы самым простым способом добиться этого? Существует ли библиотека для этого уже существует? Если нет, то что я должен сделать Google, чтобы начать с этого?

Спасибо.

+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

Лучшим способом было бы прослушивание на определенном порту. Затем отправьте запрос с php через этот порт. Тогда это вызовет функцию. Кажется, есть приятные дополнения, такие как 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 в проект. Но да, у моего приложения C++ есть доступ к сети. То, что я не знаю, как подключить его к php-странице. Возможно, когда кнопка нажата на php-странице, она может записать переменную на другую страницу php. Затем каждый так часто подключается мое приложение C++ к этой странице и проверяет переменную. Если true, то она выполнила мою функцию. Будет ли это хорошо или есть лучший метод? – mocode9

+0

Если вы можете начать прослушивание сокета в своем приложении C++, вы можете получать сообщения по сети. Я не думаю, что другой путь будет хорошим решением, так как вы будете постоянно опросить серверную сторону для события, которое может быть даже не там. Вы можете сделать простое приложение mockup на C++ и в PHP. C++ начнет прослушивать определенный порт для сообщений, и PHP отправит такие сообщения. –