我正在尝试使用自动热键脚本将 cmd.exe IDE 的内容提取到文本文件中,即一个 test.ahk,其编写如下所示:
WinGetText, text, "C:\WINDOWS\system32\cmd.exe"
FileAppend, %text%, C:\ThreePartition\ACTUAL.txt
我无法提取内容。谁能建议正确的提取方法?
我正在尝试使用自动热键脚本将 cmd.exe IDE 的内容提取到文本文件中,即一个 test.ahk,其编写如下所示:
WinGetText, text, "C:\WINDOWS\system32\cmd.exe"
FileAppend, %text%, C:\ThreePartition\ACTUAL.txt
我无法提取内容。谁能建议正确的提取方法?
The text retrieved is generally the same as what Window Spy shows for that window.
The Window Spy shows no text elements for CMD windows - what you see is not necessarily what you can get :)
What you can do is to simulate the Select All and Paste commands, and then use the clipboard contents.
我不相信您可以在不以某种方式使用 DllCall 直接读取进程内存的情况下提取 cmd 窗口的内容。
如果您只想要 Grep 或 AWK 等 CLI 命令的输出,则通过 run 命令使用 stdout 应该可以。不过老实说,我不再依赖 AHK,因为这种东西太笨重了。
http://www.autohotkey.com/docs/commands/Run.htm。
编辑评论: 您想要的是可行的,但解决方案完全取决于您的 IDE 的工作方式。它有什么行为是构建项目所独有的?如果它生成临时文件,您可以使用 AHK 子例程重载“构建”按钮,该子例程监视这些文件的存在,然后检查输出可执行文件的修改日期以查看构建是否成功。如果 IDE 在构建时更改其窗口标题,则同样的解决方案也有效。聪明点。:)
否则,您可能必须安装消息挂钩。