2011-05-25 22 views
2

我要自動運行的外部應用程序的按鈕或菜單,但我有幾個問題:我怎樣才能使UI自動化java編寫,我可以捕獲任何外部應用程序動態

  • 我如何識別按鈕或Java中的外部應用程序的其他領域?

  • 我可以在Java Robot類製作的記事本自動化,我打開記事本,選擇文件菜單,保存或退出等

  • 的問題是,它需要X,Y座標爲鼠標指向適當位置的指針。

  • 我想讓它更加動態的,即應該在桌面上的任何位置識別運行記事本的文件菜單。

這怎麼能在Java中完成?有沒有Java中的任何類可以用來做到這一點?

感謝大家給我的迴應,我想更具體我想知道如何使用任何工具如果它不可能在Java中使用任何工具或使用java.automation的任何API必須是免費的.....我尋找網爲,我發現AutoIt的是像that.But如果任何一個做這類事情請分享他/她的experiance意味着是有可能做到這一點在AutoIt的或不可能的,如果不是隨後工具做那樣的事情。

回答

0

Java沒有一個API來檢查其他應用程序的用戶界面;這將是一個非常大的安全風險。

這就是爲什麼Robot類只能記錄事件(按鍵,鼠標移動和點擊),而不是在大多數情況下涉及哪個UI元素。

如果外部應用程序是用Java編寫的,因爲那麼,你可以分析在內存中的對象,但由於顯而易見的原因,這是不可能的C++或.NET應用程序將有可能做多。

1

你應該看看Sikuli。它將ui元素的圖像作爲輸入來選擇目標應用程序中的區域。這是一個UI自動化應用程序

這是有點難以安裝(至少在Debian/Ubuntu上,我測試了它),因爲您需要最新版本的OpenCV,特定版本的JXGrabKey,但是值得這次旅行的程序。好運

2

這是很容易,因爲它是用Java編寫的,以Sikuli集成到Java的應用程序。 Sikuli使用圖像識別來查找屏幕上可見的元素,如按鈕等。它非常易於使用,並且爲靜態定位難以處理的任務提供了替代方案,例如尋找移動窗口等。

看看這個:http://sikuli.org/docx/faq/030-java-dev.html

希望這有助於!

相關問題