2012-10-29 2 views
2

저는 메모장, 단어 등에서 단어를 입력 할 수있는 자바 로봇 프로그램이 있습니다. 내가 수동으로 ALT-TAB,자바 로봇은 다른 응용 프로그램의 초점을 얻습니다.

그리고 응용 프로그램을 사용하여 텍스트 상자에 커서를 입력하려고 할 때

그러나 문제는 내가 오전하지의에서 사용할 수있는 윈도우 응용 프로그램의 초점하지 않습니다하기 목록에서 ALT-TAB을 수행하는 동안 작업 관리자 -> 응용 프로그램 탭 에도 표시되지 않지만의 프로세스 탭에서 사용할 수 있습니다. Java 로봇을 사용하여 keyPress에 대한 해당 Windows 응용 프로그램의 포커스를 얻는 솔루션이 있습니까?

또한 다른 PC의 경우 Java 로봇 프로그램을 실행 한 후 커서를 수동으로 놓으면 Clear Focus가 표시됩니다. 내 모든 PC에 JDK1.6을 설치했습니다. 내 PC에서만 작동하지 않습니다.

미리 감사드립니다.

+0

응? 분명히 해주세요. –

+1

나는 이것을 위해 JNA를 사용해야 할 수도 있다고 생각하지만, 질문을 명확히하기 전까지, 즉 여전히 도움이 필요하다면 확실하지 않습니다. –

+0

내 Java 프로그램은 응용 프로그램의 텍스트 상자에 커서를 놓으면 자동으로 입력하지 않고 입력 폼 기반의 응용 프로그램에 입력하려고합니다. 그러나 동시에 메모장에 커서를 놓으면 입력이 시작됩니다. 도와주세요 –

답변

1

나는 당신이 시스템 호출을 할 수 있도록 JNA를 사용하는 것이 가장 좋은 방법이라고 생각한다.

Windows 프로그램을 가정 할 때 JNA를 사용하여 FindWindowEx(...)SetForegroundWindow(...)과 같은 dll 함수를 포함하는 user32.dll을 호출하여 선택한 창을 포 그라운드로 설정할 수 있습니다.

+0

고맙습니다. 링크 또는 코드를 제공 해줘서 고맙습니다. 실행 해 보았습니다. 실행할 수없는 jna 프로그램, 도와주세요. –

+0

선생님, 고맙습니다. 왜 커서가 해당 윈도우 응용 프로그램의 컨트롤을 가져 와서 내 PC가 아닌 다른 PC에서 입력을 시작하는지 알고 싶습니다. 제발 도와주세요! –

1

다른 앱의 초점을 얻는 대신, 이전에 포 그라운드 (예 : 타겟 앱)에 있었던 것이 무엇이든 반환하여 초점을 얻을 수 있습니다.

+0

명령 프롬프트를 사용하여 Java 프로그램을 실행하고 있습니다. 백그라운드 프로세스로 만드는 방법을 알려주세요. –