Hallo liebe Java Community,
Mein Vorhaben:
Ich versuche in Java ein Programm zu schreiben,
was eine kleine Textbox erstellt in der man
Befehle reinschreiben kann, welche dann ausgeführt werden.
z.B In der Textbox steht "starten firefox olaf"
Dann wird firefox auch gestartet. "olaf" dient hier nur als
Befehlsende.
Problem:
Die Textbox muss die ganze Zeit im Focus gehalten
werden, damit das Programm meine Befehle entnehmen kann.
Wenn ich in Firefox jetzt eine Homepage aufrufen
will wie z.B "www.web.de", weiß ich nicht, wie
ich diesen String von der Textbox in Firefox übermittel.
Es wäre auch möglich C++ und Vb zu benutzen mit Java?
Software:
Windows 7
Eclipse Mars
Java (32bit)
Quelltext:
Mein Vorhaben:
Ich versuche in Java ein Programm zu schreiben,
was eine kleine Textbox erstellt in der man
Befehle reinschreiben kann, welche dann ausgeführt werden.
z.B In der Textbox steht "starten firefox olaf"
Dann wird firefox auch gestartet. "olaf" dient hier nur als
Befehlsende.
Problem:
Die Textbox muss die ganze Zeit im Focus gehalten
werden, damit das Programm meine Befehle entnehmen kann.
Wenn ich in Firefox jetzt eine Homepage aufrufen
will wie z.B "www.web.de", weiß ich nicht, wie
ich diesen String von der Textbox in Firefox übermittel.
Es wäre auch möglich C++ und Vb zu benutzen mit Java?
Software:
Windows 7
Eclipse Mars
Java (32bit)
Quelltext:
Java:
import java.awt.BorderLayout;
import java.awt.Robot;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
import javax.swing.JTextField;
public class KeyEventClass extends JFrame implements KeyListener, FocusListener {
private static final long serialVersionUID = 1L;
public KeyEventClass(){
this.setLayout(new BorderLayout());
JTextField field = new JTextField();
field.addKeyListener(this);
this.add(field, BorderLayout.CENTER);
this.pack();
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLocationRelativeTo(null);
this.setVisible(true);
this.addWindowListener( new WindowAdapter() {
public void windowActivated( WindowEvent e ){
field.requestFocus();
field.setText("");
}
});
}
String[] Befehle = {"starten","tauschen","eintragen"};
String[] einWort = {"","","","","","","","","","","","","","",""} ;
int i = 0;
public void keyReleased(KeyEvent e) {
if(e.getKeyCode() == KeyEvent.VK_UNDEFINED){
System.out.println("Kein Unicode-Character gedr\u00FCckt!");
}
if( einWort[i].compareTo("olaf")==0){
for(int k =0; k< Befehle.length;k++){
for(int z=0; z < 3;z++){
if(einWort[z].compareTo(Befehle[k])==0){
switch(k){
case 0: starten(einWort[z+1]);
System.out.println("case0 = starten");
einWortlöschen();
break;
case 1: tauschen();
System.out.println("case1 = tauschen");
einWortlöschen();
break;
case 2: eintragen(einWort);
einWortlöschen();
System.out.println("case2 = eintragen");
break;
default: einWortlöschen();
}
}
}
}
}
}
public void starten(String process){
try {
Robot robot= new Robot();
ProcessBuilder pb = new ProcessBuilder("cmd", "/c",
"C:\\Verknupfung\\"+process+".lnk");
pb.start();
robot.delay(1000);
this.requestFocus();
} catch (Exception x) {System.out.println("Fehler beim Prozess starten:"+x);}
}
public void tauschen(){
try {
Robot robot= new Robot();
robot.keyPress( KeyEvent.VK_ALT );
robot.keyPress( KeyEvent.VK_TAB );
robot.delay(500);
robot.keyRelease( KeyEvent.VK_TAB );
robot.delay(500);
robot.keyPress( KeyEvent.VK_TAB );
robot.delay(500);
robot.keyRelease( KeyEvent.VK_TAB );
robot.delay(500);
robot.keyRelease( KeyEvent.VK_ALT );
robot.delay(1000);
this.requestFocus();
} catch (Exception x) {System.out.println("Fehler beim Prozess starten:"+x);}
}
public void google(String eingabe){
}
public void eintragen(String[] eintrag){
}
public void einWortlöschen(){
for(int k=0;k< einWort.length;k++) einWort[k] = "" ;
i=0;
repaint();
}
public void keyTyped(KeyEvent e) {
}
public void keyPressed(KeyEvent e){
if(i > 20) { System.out.println("Error Index über..");}
if(e.getKeyChar()==KeyEvent.VK_SPACE){
i++;
}
if( e.getKeyChar() != KeyEvent.VK_SPACE ) einWort[i] += e.getKeyChar();
}
public static void main(String[] args) {
new KeyEventClass();
}
@Override
public void focusGained(FocusEvent arg0) {
}
@Override
public void focusLost(FocusEvent arg0) {
// TODO Auto-generated method stub
}
}
Zuletzt bearbeitet: