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