自动与基于闭源的Windows XP基于GUI的程序进行交互

时间:2012-04-12 01:58:35

标签: java python windows interaction

我有一个基于闭源的Windows XP GUI,可以执行一些测量。

我目前的手动工作流程是:

  1. 点击GUI上的“运行”按钮开始数据捕获
  2. 按GUI上的“停止”按钮停止数据捕获。
  3. 读取屏幕上显示的某些值。
  4. 将会话数据保存到文件中。
  5. 没有库或API可以自动完成整个交互,因此我别无选择,只能手动执行:(我很厌烦它!

    正如您清楚地看到这种方法不仅耗时而且容易出错,因为它受到我的反应时间的限制,而反应时间因每次运行而异。

    我想知道是否有办法让这种互动自动化?如果是,我的选择是什么?我宁愿用Python或Java实现一些东西。但我也对其他选择持开放态度。

    我的想法是实现在Windows XP计算机上运行的服务器进程。然后,我可以远程向此服务器进程发送请求,从而自动执行我的工作流程。

2 个答案:

答案 0 :(得分:1)

有一个惊人的Windows GUI自动化工具叫做autoit。 http://www.autoitscript.com/site/autoit/

答案 1 :(得分:0)

您询问了将AutoIt与Java相关联的问题。为了我的目的,我使用ProcessBuilder来创建一个Process,然后获取Processes InputStream和ErrorStream,并确保在一个单独的线程中处理这些流。我有AutoIt使用InputStream与我的Java程序通信。这篇文章的一篇好文章(虽然有点过时)就是这篇文章:When Runtime.exec() won't。确保进程在后台线程上运行并且在自己的线程中读取两个流是关键。如果您在Swing GUI中执行此操作,则必须特别注意在主Swing事件线程EDT上进行所有Swing调用。