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
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