Symulacja wciśniętego przycisku myszy

Odpowiedz Nowy wątek
2019-07-29 01:17
0

Cześć,
chciałbym się dowiedzieć jakiej metody należy użyć, by działała jak wciśnięty przycisk myszy?

Pozdrawiam

Pozostało 580 znaków

2019-07-29 08:47
1

doClick()
https://docs.oracle.com/javas[...]AbstractButton.html#doClick()


Wiedza to potęga
edytowany 1x, ostatnio: Haskell, 2019-07-29 08:48

Pozostało 580 znaków

2019-08-04 22:13
0

Jest jeszcze klasa Robot . Nie wiem czy o to chodzi <?!>

https://docs.oracle.com/javase/7/docs/api/java/awt/Robot.html
https://javastart.pl/baza-wiedzy/klasy/klasa-robot
https://stackoverflow.com/que[...]a-real-mouse-click-using-java

Mój testowy kod w którym ogarniałem działanie tej klasy. Akurat tutaj porusza kursorem w osi x od 200 do 1000 5 razy. Tylko przy odpaleniu kodu kursor myszy musi być pomiędzy wartościami 200 a 1000, czyli gdzieś na środka ekranu o rozdzielczości 1600x900, ku lewej stronie. A klikanie to jak widać na stronach wyżej np bot.mousePress(InputEvent.BUTTON1_DOWN_MASK) bot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);

package robot;

import java.awt.Robot;
import java.awt.AWTException;
import java.awt.MouseInfo;
import java.awt.Point;

public class RobotDemo {

    private static int state = 0;
    private static int x = 1000;
    private static int y = 1000;

    private static int counter = 0;

    public static void main(String[] args) throws AWTException {
        Point p = MouseInfo.getPointerInfo().getLocation();
        //System.out.println(p);
        x = p.x;
        y = p.y;

        Robot robot = new Robot();

        Thread t = new Thread(new Runnable() {
            public void run() {
                while(true) {

                    if (counter >= 5) break;

                    try {
                        if (x <= 200 && state == 0) {
                            state = 1;
                        }  
                        if (x > 200 && x < 1000 && state == 0){
                            x --;
                        } 
                        if (state == 1) {
                            x ++;
                        } 
                        if (x >= 950 && state == 1) {
                            state = 0;
                            //break;
                            counter ++;
                        }
                        //System.out.println(state + " " + counter);
                        robot.mouseMove(x, y);
                        Thread.sleep(1);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            }
        });

        t.start();                                                                          

    }

}

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0