Функция Windows API FindWindow всегда возвращает 0, когда exe выполняется в функции PHP exec()
Я сделал приложение командной строки для выполнения некоторых задач на сервере. Например, он "отслеживает" окно и отправляет ему ключи. Я использую функцию Windows API findWindow(), чтобы найти окно. Когда я запускаю exe из командной строки, он отлично работает, кроме случаев, когда я запускаю его из PHP с помощью функции exec(). Функция FindWindow, возвращающая всегда 0 (она не может найти дескриптор окна), почему? Это работает в песочнице или что-то?
Что я могу сделать по этому поводу? Кто-нибудь?
Спасибо за ваш ответ.
С уважением, Эрвин Хаантес
1 ответ
Сервисы не имеют возможности находить окна в пользовательском сеансе переднего плана. Это называется изоляцией сеанса 0.
PHP работает под веб-сервером, который (обычно) работает как служба, в определенном сеансе / контексте. Из-за этого ваша функция findWindows() потерпит неудачу.
Вы можете проверить эту теорию, вызвав PHP.exe для запуска вашего скрипта из командной строки вашего собственного сеанса.