Можно ли использовать PHP для управления GUI-приложением? - PullRequest
0 голосов
/ 28 октября 2009

Предположим, у меня есть приложение с графическим интерфейсом, работающее в Windows, и я хотел бы создать для него веб-интерфейс с использованием PHP. Это вообще возможно? Я знаю, что могу использовать такие функции, как system () или exec () для запуска программ, но могу ли я иметь больший контроль над работающим приложением с графическим интерфейсом? Прежде всего, я хотел бы иметь возможность отправлять ему нажатия клавиш, чтобы я мог использовать его для обработки файла, сохранения вывода и выхода.

Пожалуйста, укажите мне правильное направление.

Ответы [ 8 ]

3 голосов
/ 28 октября 2009

Должен ли это быть PHP? Вы можете распространять свое приложение с графическим интерфейсом в Интернете с помощью Java-апплета VNC (бесплатно), Windows Terminal Services, Citrix и т. П. (Не бесплатно). Я не могу придумать, как сделать это возможным в PHP, а не просто «щелкнуть» GUI.

2 голосов
/ 28 октября 2009

Не могу сказать, что я пробовал это сам, но вы должны взглянуть на расширения PHP только для Windows, в частности, расширение COM (http://www.php.net/manual/en/refs.utilspec.windows.php).

Из вступления в документации:

COM является одним из основных способов склеивания приложения и компоненты вместе на платформе Windows; используя COM вы можно запустить Microsoft Word, заполнить шаблон документа и сохранить результат как документ Word и отправьте его посетитель вашего сайта.

Вы будете ограничены запуском скриптов на своем собственном боксе, но, похоже, это то, что вам нужно. Материал COM / OLE может быть довольно глубоким кроличьим отверстием, так что удачи!

2 голосов
/ 28 октября 2009

Возможно, вы захотите посмотреть php-gtk

1 голос
/ 28 октября 2009

Если вам нужно увидеть, как GUI работает в вашем веб-приложении, апплет просмотра VNC - это то, что вам нужно.

Если вы хотите предоставить веб-форму и манипулировать своим графическим интерфейсом за кулисами, воспользуйтесь средствами автоматизации Windows в своей любимой поисковой системе. Они имеют мощные скриптовые языки, которые позволят вам создавать сложные (при необходимости) процедуры. Вы можете вызвать многие из них из командной строки и передать скрипт для выполнения. Если бы вы делали это с PHP, вы могли бы даже сгенерировать скрипт как временный файл и передать его макропроцессору.

Возможно, вы сможете получить то, что вам нужно, от Windows Script Host (WSH), который похож на сценарии пакетного файла, но имеет больше возможностей.

1 голос
/ 28 октября 2009

Звучит очень возможно ... Пусть приложение с графическим интерфейсом запускает локальный сервер, скажем, на 127.0.0.1:[anyportnumber] Затем, когда вы что-то делаете через Интернет, позвольте приложению PHP отправлять команды вашему приложению, отправляя данные в приложение с графическим интерфейсом, которое слушает любые команды, на которые оно должно реагировать.

1 голос
/ 28 октября 2009

Ты определенно можешь это сделать, но это займет немного хакерства. Один из способов сделать это - написать приложение командной строки Windows, которое будет отправлять нажатия кнопок и тому подобное в приложение с графическим интерфейсом Windows. Затем вы вызываете это приложение командной строки с помощью PHP и вызовов exec и system.

Например, если бы вы передавали его, скажем, Firefox, у вас было бы приложение firefox-wrapper, которое можно было бы назвать так:

firefox-wrapper open-url http://stackoverflow.com
firefox-wrapper press-back
...
1 голос
/ 28 октября 2009

Самая важная вещь, которую вам нужно помнить, это старая пословица о том, что языки программирования аналогичны инструментам. Вы не будете пытаться снять спущенную шину молотком, а также не будете забивать гвозди шиномонтажем. Суть: используйте правильный инструмент для работы. Использование php для выполнения того, что вы планируете делать, похоже на попытку забить гвоздь отверткой. Найдите молоток хорошего качества.

1 голос
/ 28 октября 2009

Я не думаю, что на самом деле можно отправлять щелчки мыши или нажатия клавиш в настольное приложение через веб-приложение на PHP (если это возможно, я сомневаюсь, что это легко - или красиво). Что может сработать, так это взять функциональность, которая необходима приложению PHP, и переместить ее в отдельную библиотеку или службу, которую приложение PHP может вызывать с помощью набора методов, которые вы ему предоставляете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...