0

我制作了一个命令行应用程序来在服务器上执行一些任务。例如,它“跟踪”一个窗口并向其发送密钥。我使用 Windows API 函数 findWindow() 来查找窗口。当我从命令行运行 exe 时,它​​运行良好,除非我使用 exec() 函数从 PHP 运行它。FindWindow 函数总是返回 0(它找不到窗口句柄),为什么?它是在沙箱中运行还是其他什么?

我该怎么办?任何人?

谢谢您的回答。

亲切的问候, 欧文·汉杰斯

4

1 回答 1

1

服务无法在前台用户会话中找到窗口。这称为session-0 隔离

PHP 在特定会话/上下文中(通常)作为服务运行的 Web 服务器下运行。因此,您的 findWindows() 函数将失败。

您可以通过调用 PHP.exe 从您自己会话的命令行运行脚本来测试这个理论。

于 2011-06-16T16:32:21.000 回答