You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PHP中获取AHK脚本的执行结果?

解决PHP调用AHK脚本获取数据的问题

问题根源

你用了start命令启动AHK,这会让AHK在独立的新窗口运行,和PHP的执行进程完全脱离,所以PHP捕获不到AHK的输出和退出码——你拿到的0其实是start命令本身执行成功的返回码,和AHK无关。

解决步骤

1. 修改AHK脚本,输出内容到标准输出

原来的MsgBox是弹窗,不会把内容输出到控制台(标准输出),要改成向标准输出写内容:

; 把内容输出到标准输出,PHP才能捕获到
FileAppend, % "Hello world", *
; 指定退出码,PHP会拿到这个值
ExitApp, 7777

2. 修改PHP的调用代码,去掉start命令

直接调用AHK执行脚本,不要用start:

; 替换成你的ahk.exe路径和脚本路径
$result = exec('C:\path\to\ahk.exe C:\path\to\your_script.ahk', $output, $result_code);
var_dump($result, $output, $result_code);

3. 验证结果

执行后你应该能看到类似这样的输出:

string(11) "Hello world"
array(1) { [0]=> string(11) "Hello world" }
int(7777)

额外说明

  • 如果想传递更多数据,直接在AHK里用FileAppend多次输出即可,每行内容会被PHP存到$output数组的对应元素里。
  • 要是你不想用单独的脚本文件,也可以直接把AHK代码作为参数传递给ahk.exe:
$ahkCode = 'FileAppend, % "Hello world", *`nExitApp, 7777';
$result = exec('C:\path\to\ahk.exe /c "' . $ahkCode . '"', $output, $result_code);

内容的提问来源于stack exchange,提问作者Tamila Ambeon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 05:10:07