Robot Makro fehlerhaft

florian1995

Aktives Mitglied
Hallo wollte ein Robot-Interpreter schreiben.
Er funzt auch so wie er soll aber wenn das Programm beendet wird kann ich 4 und maustasten(auch andere nicht) nicht mehr drücken woran liegt das?

Java:
/**
 * @(#)RIP.java
 *
 *
 * @author 
 * @version 1.00 2010/3/15
 */

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.awt.*;
import java.awt.event.*;
public class RIP {

    public static void main(String [] args)throws IOException, AWTException {
    	BufferedReader file=null;
    	String path=null;
    	try{
    		BufferedReader p=new BufferedReader(new FileReader("path.txt"));
    		path=p.readLine();
    		p.close();
    	}catch(Exception e){
    		System.out.println("File Not Found");
    		System.exit(1000);
    	}
    	try{
    		file=new BufferedReader(new FileReader(path));
    	}catch(Exception e){
    		System.out.println("File Not Found");
    		System.exit(1000);
    	}
    	String command="";
    	L:
    	while(command!=null){
    		command=file.readLine();
    		if(command==null){
    			break L;
    		}
    		char [] ch=command.toCharArray();
    		switch(ch[0]){
    			case 's':
    				say(command);
    				break;
    			case 'p':
    				press(command);
    				break;
    			case 'w':
    				wait(command);
    				break;
    				
    		}
    	}
    	file.close();
    	
    }
    
    static void wait(String command)throws IOException, AWTException{
    	StringBuffer b=new StringBuffer(command);					//get the Int-value of the String
    	String s=b.substring(1,b.length());
    	int delay=Integer.parseInt(s);
		try{
			Thread.sleep(delay);
		}catch(Exception e){
		}
    }
    
    static void press(String command)throws IOException, AWTException{
    	char [] ch=command.toCharArray();
    	Robot r=new Robot();
    	for(int i=1;i<ch.length;i+=4){								//check which key combinations have to be pressed
    		/*
    		 *available KeyBindings:
    		 *ENT - ENTER
    		 *TAB - TAB
    		 *ALT - ALT
    		 *BAK - Backslash
    		 *F44  - F4
    		 */
    		if(ch[i]=='E'&&ch[i+1]=='N'&&ch[i+2]=='T'){				
    			r.keyPress(KeyEvent.VK_ENTER);
    		}
    		if(ch[i]=='T'&&ch[i+1]=='A'&&ch[i+2]=='B'){
    			r.keyPress(KeyEvent.VK_TAB);
    		}
    		if(ch[i]=='A'&&ch[i+1]=='L'&&ch[i+2]=='T'){
    			r.keyPress(KeyEvent.VK_ALT);
    		}
    		if(ch[i]=='B'&&ch[i+1]=='A'&&ch[i+2]=='K'){
    			r.keyPress(KeyEvent.VK_BACK_SLASH);
    		}
    		if(ch[i]=='A'&&ch[i+1]=='L'&&ch[i+2]=='G'){
    			r.keyPress(KeyEvent.VK_ALT_GRAPH);
    		}
    		if(ch[i]=='F'&&ch[i+1]=='4'&&ch[i+2]=='4'){
    			r.keyPress(KeyEvent.VK_F4);
    		}
    	}
    	r=null;
    	
    }
    
    
    static void say(String command)throws IOException, AWTException{
    	char [] ch=command.toCharArray();
    	Robot r=new Robot();
    	for(int i=1;i<ch.length;i++){
    		switch(ch[i]){
    			case '!':															//catch '?','!','/'
    				r.keyPress(KeyEvent.VK_SHIFT);
    				r.keyPress(KeyEvent.VK_1);
    				r.delay(10);
    				r.keyRelease(KeyEvent.VK_SHIFT);
    				r.keyRelease(KeyEvent.VK_1);
    				break;
    			case '?':
    				r.keyPress(KeyEvent.VK_ALT);
					r.keyPress(KeyEvent.VK_NUMPAD6);
					r.keyRelease(KeyEvent.VK_NUMPAD6);
					r.keyPress(java.awt.event.KeyEvent.VK_NUMPAD3);
					r.keyRelease(KeyEvent.VK_NUMPAD3);
					r.keyRelease(KeyEvent.VK_ALT);
					break;
    				
    			case '/':
    				r.keyPress(KeyEvent.VK_SHIFT);
    				r.keyPress(KeyEvent.VK_7);
    				r.delay(10);
    				r.keyRelease(KeyEvent.VK_SHIFT);
    				r.keyRelease(KeyEvent.VK_7);
    				break;
    				
    			default:															
    				r.keyPress(ch[i]);
    				r.delay(10);
    				r.keyRelease(ch[i]);
    				break;
    		}
    	}
    	r=null;
    }
    
    
}

Ich hoffe auf schnelle Hilfe.
 
Zuletzt bearbeitet:

eRaaaa

Top Contributor
Okay da liegt ja das Problem. Es wird ALT+F4 gedrückt, aber ALT wird nie losgelassen, fehlt also das keyRelease in press! Musst dir also merken dass das gedrückt wurde und wenn dann auch F4 gedrückt wurde, ALT halt loslassen :D
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Aruetiise Schnellere Alternative zu awt.robot AWT, Swing, JavaFX & SWT 3
F AWT Robot Klasse Screenshot nach Pixelmustern in bestimmten Radius um Bildschirmmittelpunkt absuchen AWT, Swing, JavaFX & SWT 13
G AWT Wie bekomme ich einen zeitgesteuerten robot hin? AWT, Swing, JavaFX & SWT 6
W JavaFX JavaFX Robot funktionsfähig? AWT, Swing, JavaFX & SWT 6
D Robot Programm mit Escape abbrechen (aus Eclipse heraus) AWT, Swing, JavaFX & SWT 2
N Speed Click Robot? AWT, Swing, JavaFX & SWT 7
F Hilfe beim ausschalten von Robot AWT, Swing, JavaFX & SWT 7
H Java Robot mouse funktioniert nur auf Notebook nicht. AWT, Swing, JavaFX & SWT 4
B Externes Programm mit Robot Steuern AWT, Swing, JavaFX & SWT 3
1 Java.awt.Robot Problem beim Shift-Druck AWT, Swing, JavaFX & SWT 5
P AWT.Robot & pressedKey AWT, Swing, JavaFX & SWT 13
W problem mit robot AWT, Swing, JavaFX & SWT 3
ARadauer Robot in vmware AWT, Swing, JavaFX & SWT 2
I robot - Satzzeichen AWT, Swing, JavaFX & SWT 3
L Wie benutze ich einen robot richtig für screencapture AWT, Swing, JavaFX & SWT 5
D Robot: Screenshot vom Desktop Hintergrund möglich ? AWT, Swing, JavaFX & SWT 3
B Robot wird langsamer AWT, Swing, JavaFX & SWT 4
G Robot AWT, Swing, JavaFX & SWT 5
P CardLayout funktioniert fehlerhaft AWT, Swing, JavaFX & SWT 13
T Swing ButtonFactory, letzter Button fehlerhaft AWT, Swing, JavaFX & SWT 1
J Swing fehlerhaft dargestellt AWT, Swing, JavaFX & SWT 5
J Swing Fokus JInternalFrame fehlerhaft AWT, Swing, JavaFX & SWT 4
N Swing JList Elemente ausgeben fehlerhaft AWT, Swing, JavaFX & SWT 4
G Bildschirmaufbau fehlerhaft AWT, Swing, JavaFX & SWT 13
R KeyListener seit 1.4.x fehlerhaft AWT, Swing, JavaFX & SWT 7

Ähnliche Java Themen


Oben