StdKem
Guest
Win, PHP: запуск GUI-приложений.
Задача - требуется запустить из PHP под Windows определенное GUI-приложение (для примера возьмем "calc.exe").
При попытки её реализации столкнулся с такой проблемой.
При использовании функций exec(), system(), popen() - процесс открывается "внутри" системы, где-то там далеко... в пайпах.
Была попытка использовать прокладку - start.exe, но результат был таким же.
Была сделана попытка создания собственной "прокладки" - приложение на Delphi, которой создавала новый процесс и запускала калькулятор. Но опять же - результат такой же.
Но на этом я не остановился... решил попробывать через runas.exe:
Угадали что получилось? Правильно - те же яйца, только в профиль.
И вот на последнем дыхании была попытка зарегистрировать через w32api_register_function() функцию WinExec из user32.dll (естесственно, прикрутив модуль php_w32api). и здесь мне нагло заявили, что функции w32api_register_function() не существует. 8) здрасте приехали...
Вообщем, я к чему всю эту эпопею. Как из РНР под виндочками запустить GUI-приложение?
P.S. Было ещё несколько сумасшедших идей типа - создание прокладочки, которая бы мониторила какую-то папочки на предмет создания в нем спец.файла или создание двух прокладочек - одна висит и ждет определенного сообщения, а другая, которую бы мы запускали из скрипта, отсылала ей это сообщение, а та в свою очередь спокойненько бы запускала нужное приложение. Но чую я заветным местом, что всё гораздо проще и решается штатными средствами (либо конфигом).
Задача - требуется запустить из PHP под Windows определенное GUI-приложение (для примера возьмем "calc.exe").
При попытки её реализации столкнулся с такой проблемой.
При использовании функций exec(), system(), popen() - процесс открывается "внутри" системы, где-то там далеко... в пайпах.

Была попытка использовать прокладку - start.exe, но результат был таким же.
Была сделана попытка создания собственной "прокладки" - приложение на Delphi, которой создавала новый процесс и запускала калькулятор. Но опять же - результат такой же.

Но на этом я не остановился... решил попробывать через runas.exe:
PHP:
<?
if ($hProcess = popen("runas /user:guest calc", "w"))
{
sleep(1);
fwrite($hProcess, "\n");
sleep(1);
pclose($hProcess);
}
?>
И вот на последнем дыхании была попытка зарегистрировать через w32api_register_function() функцию WinExec из user32.dll (естесственно, прикрутив модуль php_w32api). и здесь мне нагло заявили, что функции w32api_register_function() не существует. 8) здрасте приехали...
Вообщем, я к чему всю эту эпопею. Как из РНР под виндочками запустить GUI-приложение?

P.S. Было ещё несколько сумасшедших идей типа - создание прокладочки, которая бы мониторила какую-то папочки на предмет создания в нем спец.файла или создание двух прокладочек - одна висит и ждет определенного сообщения, а другая, которую бы мы запускали из скрипта, отсылала ей это сообщение, а та в свою очередь спокойненько бы запускала нужное приложение. Но чую я заветным местом, что всё гораздо проще и решается штатными средствами (либо конфигом).