2017-10-18 10 views
0

私は、タイミングに応じて、マウスカーソルを特定の座標に移動させるプログラムをユーザーに関係なく作成しようとしています。私はロボットを使ってシンプルなコードを書いたが、問題に遭遇した。私は2つのモニターを持っていて、カーソルは現在のモニターの種類によっては間違って動くので、問題を解決する方法を教えてください。以下のコードは、私が作成しようとしていたものですJAVAロボットmouseMove 2モニタ

...

GraphicsEnvironment graphicsEnvironment = GraphicsEnvironment.getLocalGraphicsEnvironment(); 

    GraphicsDevice[] graphicsDevices = graphicsEnvironment.getScreenDevices(); 

    for(int i=0; i < graphicsDevices.length; i++) 
    { 
     System.out.println(graphicsDevices[i]);    
    } 

    try { 

     //Robot robot = new Robot(MouseInfo.getPointerInfo().getDevice());    

     Robot robot = new Robot();    

     while(true) 
     { 
      robot.mouseMove(-1640, -3); 

      robot.mousePress(InputEvent.BUTTON1_MASK); 
      robot.mouseRelease(InputEvent.BUTTON1_MASK); 

      Thread.sleep(10000); 
     } 

    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

答えて

0

あなたは解像度を得るのアイデアで動作し、そこから移動する必要があります。あなたはABSOLUTEの動きをしていて、さまざまな設定で異なる動作をします。

あなたはそこからこのコード

GraphicsDevice gd = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice(); 
int width = gd.getDisplayMode().getWidth(); 
int height = gd.getDisplayMode().getHeight(); 

を使用する必要がありますできます

Robot robot = new Robot(); 
robot.mouseMove (width-10, height+3); 

ですから、モニターのスペックに比較的を移動します。私は助けてくれることを願っています。

関連する問題