Auto Click

0

Hej,
Chciałbym napisać program, który potrafi automatycznie wymusić kliknięcie lewego przycisku myszy. Jeśli ktoś ma pojęcie o tym, proszę o pomoc. Przykładowym kodem źródłowym też bym nie pogardził. Z góry dzięki za pomoc.

0

Co znaczy "automatycznie wymusic klikniecie"? Ze sam ma symulowac klikanie? Jesli tak to java.awt.Robot.

0

Tak sam program bez mojej ingerencji ma klikać. Przykładowo odpalam program i w odpowiedzi na jakieś zdarzenie lub cyklicznie co jakiś czas ma kliknąć lewym przyciskiem myszy.

0

No to jak cyklicznie i sam ma klikac, to poczytaj o klasach javax.swing.Timer, javax.swing.TimerTask (wzglednie java.util.Timer) oraz wlasnie java.awt.Robot. Na szybko nie sprawdzony kod ktory co 3 sekundy przesuwa kursor na guzik i klika:

package test;


import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Point;
import java.awt.Robot;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.InputEvent;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.Timer;


public class Test {

    public static void main(String args[]) throws Exception {
        JFrame frame = new JFrame();
        frame.setLayout(new FlowLayout());
        final JButton b = new JButton("Click!");
        b.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                System.out.println("Button clicked!");
            }
        });
        frame.add(b);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.pack();
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);

        final Robot robot = new Robot();
        ActionListener action = new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                System.out.println("Robot move!");
                Point location = b.getLocationOnScreen();
                Dimension dim = b.getSize();
                int x = location.x + (dim.width / 2);
                int y = location.y + (dim.height / 2);
                robot.mouseMove(x, y);
                System.out.println("Robot click!");
                robot.mousePress(InputEvent.BUTTON1_MASK);
                robot.mouseRelease(InputEvent.BUTTON1_MASK);
            }
        };
        Timer timer = new Timer(3000, action);
        timer.start();
    }
}

Pozdro.

0

Kod jest sprawdzony, w trakcie pisania sprawdzilem czy dziala i poprawilem, ale nie edytowalem posta ;d

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