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?
Ich hoffe auf schnelle Hilfe.
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: