Robot virtual keyboard problem

Romsl

Erfahrenes Mitglied
Hi,

Hat jemand eine Idee wie man direkt Java Strings bzw. char direkt auf einem java.awt.Robot als key event auslösen kann?

z.B. wäre es schön wenn folgendes ginge. (es ist mir klar, dass es das nicht tut, sollte aber kurz beschreiben worauf ich hinaus möchte)

char c = 'g';

robot.keyPress(c);

Problem:

char c = 'A'; würde ein 'a' auf dem Keyboard auslösen...

Gruß,
-- Roman
 
hi Romsl,
habe mal gegoogelt und traf auf folgenden Code
Java:
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.KeyEvent;
public class TestSimulateKeystroke 
{
   /**
   * @param args
   * @throws AWTException
   */
   public static void main(String[] args) throws AWTException 
   {
      Robot robot = new Robot();
      for (int i=0; i<10; i++) 
      {
         robot.delay(1000);                  //warte 1000 ms
         robot.keyPress(  KeyEvent.VK_SHIFT);//drücke Shift (hält gedrückt)
         robot.keyPress(  KeyEvent.VK_H);  //drücke h (mit Shift H)
         robot.keyRelease(KeyEvent.VK_SHIFT);//lasse Shift los
         robot.keyPress(  KeyEvent.VK_H);    //drücke h
      }
   }
}

Du findes den auch unter http://www.wer-weiss-was.de/theme35/article4711446.html

viel Spaß damit

Takidoso
 
Danke schon einmal.

Das ist nicht mein Problem. Vielleicht habe ich das auch ein wenig seltsam beschrieben.

Ich bekomme von einer Anwendung über UDP einen String gesendet. Dieser String entspricht der Taste die auf der Tastatur ausgelöst werden soll.

Sprich der gesendete String ist z.B. ein großes 'H'. Jetzt möchte ich das VK_H auslösen. Mir fehlt momentan die Lösung wie ich von dem String (oder Character) 'H' auf den keyType VK_H komme.

Gruß,
-- Roman
 
Hallo,

da wirst du mit dem eleganten Weg wohl AFAIK schlechte Karten haben. Zumal Zeichen wie § und ß leider gar nicht universell für ein Virtual Keyboard sind. Was du machen könntest ist rauszufinden was die restlichen von dir gebrauchten Tasten für einen KeyCode haben, und dann eine Hashmap anlegen wo zu jedem String der entsprechende KeyCode zugeordnet ist...
Wenn du jetzt Zeichen wie bspw. das ? und das ß (deutsches Keyboard) hast, würd ichs einfach so machen das du dem ß den normalen KeyCode zuordnest und dem ? den normalen KeyCode + 1000. Somit könntest du dann im Code elegant rausfinden ob du die Shifttaste vorher drücken musst oder nicht.

HTH,
RedWing
 
Zurück