2016-07-24 8 views
0

문제 :자바 로봇 MousePress()는 Windows 작업 관리자에서 작동하지

자바 로봇의 MousePress은() 시간의 좋은 99 % 작동하지만,이 (윈도우 8.1 (10)의 작업 관리자에서 작동하지 않습니다 나는 7 이하를 테스트하지 않았다).

작업 관리자 창이 선택되면 MouseMove()도 실패합니다.


는 복제하려면

  1. 코드가 작동하는지 확인 한 번 실행, 아래의 코드를 사용합니다.
  2. 작업 관리자 (Ctrl + Shift + Escape)를 열고 코드를 실행 한 다음 빠르게 작업 관리자 창을 선택하십시오. 코드는 실행을 끝내지 만 마우스 위치는 변경되지 않습니다.

코드 :

import java.awt.AWTException; 
import java.awt.Robot; 
import java.awt.event.MouseEvent; 

public class RobotMousePressTest { 

    public static void main(String[] args) throws AWTException, InterruptedException { 
     System.out.println("Started. Waiting for sleep to finish."); 
     Robot r = new Robot(); 
     Thread.sleep(3000); 
     r.mouseMove(4, 4); 
     r.mousePress(MouseEvent.getMaskForButton(MouseEvent.BUTTON1)); 
     System.out.println("Click!"); 
    } 
} 


질문 :

    어쨌든 일을 만들 수있는 방법이 있는지
  1. 사람이 알고 있나요?
  2. MousePress() 및 MouseMove()에 사용할 수있는 대체 라이브러리가 있습니까?
  3. 제대로 작동하려면 고유 코드 (JNI)를 사용해야합니까?

답변

0

더 많은 파고 및 테스트를 한 후 Windows의 관리자 사용자와 관련이 있음을 알았습니다. 관리자 권한이없는 응용 프로그램은 관리자 권한이있는 응용 프로그램과 상호 작용할 수 없습니다. 관리자 권한으로 응용 프로그램을 실행하면 작업 관리자를 선택해도 코드가 올바르게 실행됩니다.

지금까지는 다른 방법으로 작동하지 않았습니다.