2012-04-12 25 views
0

我有一個基於Windows XP的封閉源代碼執行一些測量。自動與封閉源代碼的Windows XP GUI程序進行交互

我現在的手動工作流程是:

  1. 通過點擊「運行」按鈕上的GUI
  2. 啓動數據採集停止按GUI上的「停止」按鈕,數據採集。
  3. 讀取屏幕上顯示的某個值。
  4. 將會話的數據保存到文件。

不存在庫或API自動完成這一整體互動,所以我沒有選擇,只能做手工:(和我生病了!

正如你清楚地看到,這種方法不僅費時而且還因爲它是由每運行而改變我的反應時間的限制容易出錯。

我在想,如果有自動這種互動的方式嗎?如果有,有哪些選擇?我寧願用Python或Java來實現,但我也願意接受其他選擇。

我的想法是實現在Windows XP機器上運行的服務器進程。然後,我可以遠程發送請求到這個服務器進程,進而自動執行我的工作流程。

回答

1

有一個驚人的Windows GUI自動化工具稱爲autoit。 http://www.autoitscript.com/site/autoit/

+0

我強烈建議第二個這樣的建議。 Autoit只是爲此目的而構建的,而Java則不是。如果你試圖用Java來做這件事,你必須使用JNI或JNA來進行操作系統調用(或者用AutoIt鏈接Java,這是我在必要時完成的)。 1+這個答案。 – 2012-04-12 02:54:36

+0

有關如何將AutoIt與Java鏈接的任何指針? – 2012-04-12 09:52:40

+0

我看到這個答案相當古老,最近有哪些更好的選擇? – EndermanAPM 2017-01-09 10:16:13

0

你問過關於AutoIt與Java的聯繫。出於我的目的,我使用ProcessBuilder創建了一個Process,然後獲取Processes InputStream和ErrorStream,並確保在單獨的線程中處理這些流。我有AutoIt使用InputStream與我的Java程序進行通信。對此的一篇好文章(雖然有些過時)是這樣的:When Runtime.exec() won't。確保該進程在後臺線程上運行並確保兩個流在其自己的線程中讀取是關鍵。如果您是在Swing GUI中執行此操作,則必須格外小心所有Swing調用都在主Swing事件線程EDT上進行。

相關問題