S
Samuel
Gast
Hallo, kann Java auf die API von Windows zugreifen und dort einen Mausklick simulieren? Konnte leider nichts genaueres darüber finden, es tauchen nur Maus Events für AWT und SWING in der Suche auf
Samuel hat gesagt.:..kann Java auf die API von Windows zugreifen und dort einen Mausklick simulieren?..
//package robot;
/*
* RobotDemo.java
*Diese kleine Demo startet das Notepad Programm, schreibt einen Text,
*wählt den Text aus, löscht ihn wieder und beendet dann Notepad
*/
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
public class RobotDemo{
//Array für Tastaturdaten (um den Text zu schreiben):
static int keyInput[] = {
KeyEvent.VK_H,
KeyEvent.VK_A,
KeyEvent.VK_L,
KeyEvent.VK_L,
KeyEvent.VK_O
};
public static void main(String[] args) throws IOException, AWTException{
Runtime.getRuntime().exec("notepad");//Notepad starten
final Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_SHIFT);
for (int i = 0; i < keyInput.length; i++){
robot.keyPress(keyInput[i]);
robot.keyRelease(KeyEvent.VK_SHIFT);
//Eine Sekunde Wartezeit zwischen den Buchstaben einfügen:
robot.delay(1000);
}
robot.mouseMove(400,200);
robot.mousePress(InputEvent.BUTTON3_MASK);//Rechtsklick (Kontextmenü)
robot.mouseRelease(InputEvent.BUTTON3_MASK);
robot.delay(1000);
robot.mouseMove(410,310);
robot.delay(1500);
robot.mousePress(InputEvent.BUTTON1_MASK);//Linksklick (Alles auswählen)
robot.mouseRelease(InputEvent.BUTTON1_MASK);
robot.delay(3000);
robot.keyPress(KeyEvent.VK_DELETE);//text wieder löschen
robot.keyRelease(KeyEvent.VK_DELETE);
robot.delay(2000);
robot.keyPress(KeyEvent.VK_ALT);//Notepad beenden
robot.keyPress(KeyEvent.VK_F4);
robot.keyRelease(KeyEvent.VK_ALT);
robot.keyRelease(KeyEvent.VK_F4);
new Thread(new Runnable(){
public void run() {
robot.delay(1500);
robot.keyPress(KeyEvent.VK_ENTER);//beendet das JOptionPane
robot.keyRelease(KeyEvent.VK_ENTER);
}
}).start();
JOptionPane.showMessageDialog(null,"Robot Demo ist fertig.");
}
}
Samuel hat gesagt.:aber kann dieer Robot Direct X Mausklicks ausführen?
Das ist eben kein intelligenter Roboter, der würde erkennen wenn etwas auf dem Bildschirm nicht mehr an seinem richtigen Platz ist.Leroy42 hat gesagt.:@André
Das ist ja mal ein lustiges Programm? :lol:
Richtig spaßig wird's, wenn man kurz nach Öffnen des Notepads (bevor
"Hallo" zu Ende geschrieben wurde, seinen Browser in den Vordergrund holt.
Was auch immer das Wort bedeuten mag, die Klasse Robot beherrscht den Mausklick ohne Zweifel.Samuel hat gesagt.:Was ich suche, soll ein Click Tool sein ..
:shock:Samuel hat gesagt.:reagiert der Click nicht mehr
Samuel hat gesagt.:also eine Anwedung außerhalb des Desktops
Das Problem scheint darin zuliegen, dass das Spiel nicht den Fokus hat.Samuel hat gesagt.:tut sie auch, aber das Spiel nicht, dort scheint es anders zu gehen, oder garnicht und das ist eben dass, was ich suche, dass der Click dort verarbeitet wird