# Maus von alleine bewegen!



## FrecherFrett (14. Aug 2012)

Halle freunde des Programmierens! 
Ich hätte ein Programm was meine Maus alle 30 sec einen Rechtsklick in bestimmter Position ausführen lässt! Und das am besten in einen JFrame mit An und Aus -schalte Funktion! Könnte mir wer helfen?
Soweit bin ich gekommen:

```
import java.awt.*;
import java.awt.event.*;

public class mausslider
{
public static void main(String[] args) throws AWTException {

Robot rob = new Robot();
rob.mouseMove(800,800); // Mauszeiger bewegen
rob.delay(2000); // warte 2 Sekunden
rob.mousePress(InputEvent.BUTTON2_MASK); // linke Maustatse drücken
rob.mouseRelease(InputEvent.BUTTON2_MASK); // und wieder loslassen
rob.delay(2000); // warte 2 Sekunden
rob.mouseMove(800,800); // Mauszeigerbewegen
rob.delay(2000); // warte 2 Sekunden
rob.mousePress(InputEvent.BUTTON2_MASK); // linke Maustatse drücken
rob.mouseRelease(InputEvent.BUTTON2_MASK); // und wieder loslassen
rob.delay(2000);
}
}
```


----------



## Flown (14. Aug 2012)

Wo liegt jetzt das Problem?


----------



## FrecherFrett (14. Aug 2012)

Ich hätte dazu gerne eine Schleife und das in einem Jframe Format das ich es als .jar datei ein und ausschalten kann!


----------



## Flown (14. Aug 2012)

Dir ist jetzt schon klar, dass es dir keiner hier machen wird. Wir sind hier nicht bei wünsch dir was.
Aber wenn Probleme auftauchen sind wir gerne dazu bereit dir zu helfen.

Zu deinem Problem:
- Erzeug ein JFrame
- Mach die Schleife um deine Robot-Anweisungen
- Mach mit einem An/Aus-Button ein boolean für Schleife an/aus

Wie schon gesagt, falls es Problemen gibt melde dich


----------



## FrecherFrett (14. Aug 2012)

Ok habe selber mal ein wenig probiert!
Könnte mir jemand noch ein Denkanstoss geben zu:

- Start/Stop - Funktion
- Dauerschleife
- rob.mouseMove(800,800); (Er bewegt sich nicht dahin!) Warum das?

Hier ist mein Code bis dahin!


```
import java.awt.AWTException;
import java.awt.BorderLayout;
import java.awt.Color;
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;

public class test implements ActionListener
{
    
    private JButton button;

    public test() 
    {
        // Fenster anlegen
        JFrame frame = new JFrame();
        frame.setTitle("KlickerGO");
        frame.setLayout(new BorderLayout());
        
        // Button anlegen
        this.button = new JButton("Start");
        button.setBackground(Color.RED);
        // Eventhandler für Button zuweisen
        this.button.addActionListener(this);
        
        // Button der Frame hinzufügen
        frame.add(this.button);
        
        // Fenster zentrieren
        frame.setSize(350,150);
        frame.setLocationRelativeTo(null);
        
        // Fenster sichbar machen
        frame.setVisible(true);
    }
    
    public static void main(String[] args)   {
        new test();}

    @Override
    public void actionPerformed(ActionEvent e)
    {
        if(button == e.getSource())
            {
          	Robot rob;
			try {
				rob = new Robot();
				rob.mouseMove(800,800); // Mauszeiger bewegen
	        	rob.mousePress(InputEvent.BUTTON3_MASK); // linke Maustatse drücken
	        	rob.mouseRelease(InputEvent.BUTTON3_MASK); // und wieder loslassen
				rob.delay(2000); // warte 2 Sekunden
	        	rob.mousePress(InputEvent.BUTTON3_MASK); // linke Maustatse drücken
	        	rob.mouseRelease(InputEvent.BUTTON3_MASK); // und wieder loslassen
			} catch (AWTException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
  	
            }
   }
}
```


----------



## Michael... (14. Aug 2012)

FrecherFrett hat gesagt.:


> - rob.mouseMove(800,800); (Er bewegt sich nicht dahin!) Warum das?


Liegt eventuell daran, dass du da noch die Maus in der Hand hälst und Dich "im" Klick befindest?
Ich würde da eine kleine Pause einlegen bevor der Robot die Maus bewegt. 
Allerdings solltest Du diese Aktionen in einem separaten Thread laufen lassen - besonderns wenn das ganze dann in einer Schleife ablaufen soll. Sonst kannst Du die Schleife nicht mehr unterbrechen.


----------



## FrecherFrett (14. Aug 2012)

mh.. ne daran liegt es leider nicht! Noch ein anderen Vorschlag?


Ich denke ich lass das mit der Schleife weg sonst sprengt das meine Fähigkeiten


----------



## Michael... (14. Aug 2012)

Hast Du mal vor dem move ein delay eingebaut und nach dem Klick die Maus losgelassen? Beim mir bewegt sich die Maus.


----------



## FrecherFrett (14. Aug 2012)

Stimmt hast recht muss irgendwo ein Fehler drinne gehabt haben! 
Jetzt geht es vielen Dank!


----------

