0

我有一个调用我的 IDE 的批处理文件,所以我只想知道我们是否可以将我的 IDE 中存在的内容(全部内容)提取到一些文本文件中。

我的批处理文件写在下面

D:\WindRiver\wrenv.exe -p vxworks653-2.2.3 run
PAUSE

是否需要将更多代码添加到我现有的批处理文件中?

4

4 回答 4

1

我不确定您对“提取我的 IDE 中存在的内容”有何看法,但一般来说,这类问题是使用自动化工具解决的。此类工具可以从窗口名称、按钮标题、文本内容中获取 Windows 环境中的任何内容……您可能需要从 3thd 方应用程序中获取的所有内容(甚至是 gui 元素的图片)

我建议你看看AutoHotKey,大约 200KB 的 Windows 自动化脚本语言。

通常,您不能批量执行此操作。

在 AutoHotKey 中获取窗口的内容可以很简单:

 WinGetText, text, "name of the window"
 FileAppend, %text%, c:\out.txt

它可能会变得更复杂一些,但是您可能想要的任何东西都不会涉及超过 10 行的 AHK 脚本。

这是最好的方法,因为它不依赖于给定程序的特性,所以一旦你学习了 AHK,你可以以统一的方式从系统中获取任何信息。

请记住,某些应用程序使用非标准 Windows 组件,并且它们可能无法自动化(但这很少见)。

在社区论坛上有很多有用的函数和库,基本上你可能需要任何东西来获取信息 - 将标准输入/输出重定向到你的文件,COM Accesibilty 模块(在 Windows 中自动化的系统方法),甚至一些 ocr 包装器扫描图像上的信息。

于 2009-04-15T12:44:30.440 回答
0

抱歉回复晚了。这是实际的 IDE(D:\WindRiver\wrev.exe -p vxworks653-2.2.3),当我将它放在命令提示符中时,我的 IDE 被调用。请再联系我澄清

谢谢斯蒂芬

于 2009-04-15T18:28:00.753 回答
0

我问了一个可能有用的类似问题。只有当您的 IDE 将信息输出到 stdout/stderr 等时,这种方法才可能起作用。

我已经取得了一些(有限的)成功,连接到已经运行的进程以尝试拦截它们正在输出的数据。

具体来说,您要捕捉的是什么?它的一个窗口的输出?如果启动失败会提示错误信息?

[编辑]我仍然不确定您要捕获的确切内容,但听起来您可以从批处理文件中启动 Python 脚本。该脚本启动您的 IDE并捕获 stdout 和 stderr,这将为您提供正常输出任何错误。

于 2009-04-15T12:41:12.740 回答
0

>>> 嗨,我刚刚尝试使用 AutoHotKey....

不,它不正确。

只有当我安装了我没有的 WindRiver 时才能生成正确的代码。好的,让我简短地解释一下。

首先假设 IDE 的标题以“WindRiver”字样开头。WindRiver 必须在其控件层次结构中的某些标准窗口控件中保存文本。有问题的控件类型指导您如何从中获取文本。例如,如果它是 ListView 或 ListBox,则必须使用

ControlGet, outputVar, List,, SysListView321, WindRiver

上面的代码的意思是,“从标题以'WindRiver'开始的应用程序中获取第一个SysListView32控件的文本(因此最后是1),并将其放入ouputVar变量中”

如果它保留在编辑框中,您可以简单地执行以下操作:

ControlGetText, OutputVar, Edit1, WindRiver

这意味着“在应用程序中获取标题为 WindRiver 的第一个编辑控件的内容”

为了获得相关控件的类型和数量,只需打开 Window Spy(右键单击 AHK 托盘图标)并将鼠标悬停在控件上即可查看其详细信息。

整个脚本将如下所示:

Run, d:\WIndriver ....
WinWaitActive, WindRiver
ControlGetText, OutputVar, Edit1, WindRiver
MsgBox %OtputVar%  

如果窗口的标题不断变化,您将不得不使用窗口类 instad title 来识别窗口。例如,您可以将记事本定位为

ControlGetText, o, Edit1, Untitled 

或者

COntrolGetText, o, Edit1, ahk_class Notepad

第一种方法使用窗口标题,第二种方法使用应用程序的 Window API 类,因为标题可以更改,所以效果更好。

总而言之,要熟悉 AHK,请查看启动示例。我可以向你保证,经过几天的练习,你会发现自己可以根据自己的需要调整任何应用程序。

要了解 AHK 的强大功能以及可以在其中完成哪些惊人的事情,请查看Dock模块。

您无法批量执行此操作并使用 std 重定向,因此您最好习惯 AHK 或一些类似的自动语言(AutoIt、Phantom、WinRunner....)。顺便说一句,这种问题通常会在 AHK 社区请求帮助论坛上的几个小时内得到回答。

于 2009-04-17T15:49:56.013 回答