访问外部程序的显示内容

访问外部程序的显示内容

这对我来说一直是一个难题,我不知道(即使在谷歌搜索之后)解决这个问题的最简单的方法是什么。

我有一个显示一些数据的外部程序(相干激光软件)。

有没有办法让我可以在 Windows 中访问任何当前打开的窗口中显示的任何文本的内容?可以在 powershell 中实现类似钩子的功能吗?

理想情况下,我希望读出并保存激光的当前设定值,如 GUI 所示。

答案1

如果你可以安装免费的便携式应用程序获取窗口文本选择在相干激光软件所在的操作系统上,可能会捕获文本。获取窗口文本与记事本配合良好,但无法从我尝试过的其他应用程序中复制文本。

第二种选择是让外部应用程序创建一个文本文件作为输出,以便稍后查看或发送到您的电脑。

最简单的方法可能是从本地 PC 截取屏幕截图,然后使用光学软件识别 (OCR) 软件获取文本。尝试免费OCR或其中之一很多选择警告:OCR 有时会出现误读文本的情况。

答案2

自动热键是一款出色的批处理式工具,专为此类事情而设计。一般来说,步骤如下:

  1. 打开激光软件后,运行附带的Windows 间谍公用事业
  2. 将鼠标悬停在所需的文本字段(控件)上,并记下控件的 ClassNN
  3. 在你的 AHK 脚本中,使用控制获取文本将值存储为变量
  4. 例如,要获取窗口文本然后传递给 powershell 脚本:

香港中文大学:

ControlGetText, MyVar, MyClassNN, MyTitle
Run, powershell.exe "C:\MyScript.ps1 %MyVar%"

电源外壳:

$setvalue = $args[0]
# do stuff

相关内容