2012-04-12 5 views
0

일부 측정을 수행하는 폐쇄 형 Windows XP GUI 기반이 있습니다.폐쇄 형 Windows XP GUI 기반 프로그램과의 상호 작용 자동화

나의 현재 수동 워크 플로우는 다음과 같습니다

  1. 는 GUI
  2. 에 "실행"버튼을 클릭하여 데이터 캡처를 시작 중지 GUI에 "정지"버튼을 눌러 데이터 캡처.
  3. 화면에 표시된 값을 읽으십시오.
  4. 세션에 대한 데이터를 파일에 저장하십시오.

이 더 라이브러리 나 API는이 모든 상호 작용을 자동화하고, 따라서 내가 수동으로 할 것이 아니라 어떤 옵션도 없어 할 수 없다 :(내가 지겨워!

당신이 명확하게이 방법을 볼로 모든 실행에 따라 달라지는 반응 시간으로 인해 시간이 많이 걸릴뿐만 아니라 오류가 발생하기 쉽습니다.

이 상호 작용을 자동화 할 수있는 방법이 있는지 궁금한가요? 그렇다면 옵션은 무엇입니까? 파이썬이나 자바로 무언가를 구현하는 것을 선호하지만, 다른 옵션들에 대해서도 열려 있습니다.

제 아이디어는 Windows XP 시스템에서 실행되는 서버 프로세스를 구현하는 것입니다. 그런 다음이 서버 프로세스에 요청을 원격 전송하여 내 워크 플로를 자동으로 실행합니다.

답변

1

놀라운 Windows GUI 자동화 도구 인 autoit가 있습니다. http://www.autoitscript.com/site/autoit/

+0

나는이 권고를 강력히 강조한다. Autoit은 단지이 목적을 위해 만들어졌으며 Java는 그렇지 않았습니다. Java를 사용하려고한다면 JNI 나 JNA를 사용하여 OS 호출을하거나 Java AutoIt과 연결해야합니다. 1 +이 답변을. –

+0

AutoIt을 Java와 연결하는 방법에 대한 모든 조언이 필요하십니까? –

+0

이 답변은 상당히 오래된 것입니다. 최근의 더 나은 옵션이 있습니까? – EndermanAPM

0

AutoIt을 Java와 연결하는 법에 대해 질문했습니다. 필자는 ProcessBuilder를 사용하여 Process를 작성한 다음 Processes InputStream 및 ErrorStream을 가져 와서 별도의 스레드에서 이러한 스트림을 처리해야합니다. AutoIt은 InputStream을 사용하여 Java 프로그램과 통신합니다. 이것에 대한 좋은 기사 (다소 오래되었지만)는 When Runtime.exec() won't입니다. 프로세스가 백그라운드 스레드에서 실행되고 두 스트림이 자체 스레드에서 읽히는 지 확인하는 것이 중요합니다. 스윙 GUI에서이 작업을 수행하는 경우 모든 스윙 호출이 주 스윙 이벤트 스레드 인 EDT에서 수행되어야하므로 세심한주의를 기울여야합니다.