我已经创建了一个命令行应用程序来在服务器上执行某些任务。例如,它“跟踪”一个窗口并向其发送密钥。我使用windows API函数findWindow()来查找窗口。当我从命令行运行exe时它工作得很好,除非我使用exec()函数从PHP运行它。 FindWindow函数总是返回0(它找不到窗口句柄),为什么?它是在沙箱中运行吗?
我该怎么办?任何人吗?
感谢您的回答。
亲切的问候, Erwin Haantjes
答案 0 :(得分:1)
服务无法在前台用户会话中查找窗口。这称为session-0 isolation。
PHP在Web服务器下运行,该服务器(通常)在特定会话/上下文中作为服务运行。因此,findWindows()函数将失败。
您可以通过调用PHP.exe从您自己的会话命令行运行脚本来测试此理论。