Announcement

Collapse
No announcement yet.

Tastaturpuffer beschreiben

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Tastaturpuffer beschreiben

    Hallo.

    Ich habe folgendes Problem:

    Ich lese über einen Scanner der am COM Port (RS232) hängt einen Chip mit einer Nummer ein. Diese Nummer bekomme ich in meiner Anwendung auch angezeigt.
    Jetzt möchte ich gerne die Ausgabe nicht im Fenster meiner Anwendung sondern in den Tastaturpuffer schreiben, damit es mir möglich wird, die Ausgabe z.B. in ein aktuell aktives Inputfield einzulesen.

    Die Funktionsweise soll somit ähnlich zu dem sein, was ein normaler Handscanner auch kann:

    Per klick auf den Auslösebutton des Handscanners den Barcode erfassen und in den Tastaturpuffer zur Ausgabe schreiben.

    Hoffe ihr habt ungefähr verstanden was ich gerne machen würde. Eigentlich sollte es wohl kein Problem sein. Ich hab auch schon bei Google gesucht, allerdings noch nix passendes gefunden was mir irgendwie weitergeholfen hätte.

    Hier sind doch die ganzen Genies versammelt. Also helft mir bitte ein bischen auf die Sprünge!

    DANKE vorab!
    Christian

  • #2
    Sehe nicht, dass das mit Java geht. Da hier Plattformunabhängigkeit im Vordergrund steht, ist solche Funktionalität nicht gefragt.

    Denke hier musst du dann doch per Java auf eine DLL o.a. zurückgreifen
    Christian

    Comment


    • #3
      Hallo,

      Man kann in Java Tastendrücke oder Mausbewegungen simulieren. Folgendes Programm drückt hundertmal die Taste A. Wenn währenddessen ein anderes Fenster/Inputfeld eines beliebigen Programms offen ist, bekommt das auch die Eingabe ab. Das ist es doch was Du willst?

      Code:
      Robot robot = new Robot();
      for(int ii = 0; ii < 100; ii++)
      {
          Thread.sleep(300);
          robot.keyPress('A');
      }
      Viele Grüße,

      Alwin

      Comment


      • #4
        Das könnte des Rätsels Lösung werden!
        Werde es mal ausprobieren!
        Zuletzt editiert von xplox; 10.03.2009, 13:38.

        Comment


        • #5
          Hey es hat geklappt! Danke nochmal für den Tip mit der Robotklasse!

          PHP Code:
          import java.awt.AWTException;
          import java.awt.Robot;
          import java.awt.event.KeyEvent;
          import java.util.regex.Matcher;
          import java.util.regex.Pattern;

          /**
           * @file     StringToKeyboard.java 
           *
           * @author     Christian Schmidt
           * @date     10.03.2009
           * @version 1.0
           * 
           * Die Klasse String To Keyboard dient als Ergänzung zur Blackbox - Anwendung.
           * Mit Hilfe dieser Klasse wird der ausgelesene Datenstrom an die Tastatur
           * weitergegeben und kann somit in einem beliebigen Programm ausgegeben werden.
           * 
           * In Version 1.0 werden nur Zahlenstrings unterstützt!
           */
          public class StringToKeyboard {

              public static 
          void printToKeyboard(String strint byteCount)
              {
                  
          Pattern p Pattern.compile("[0-9]*");
                  
          Matcher m p.matcher(str);
                  
          String tmp "";
                  while ( 
          m.find() ) {
                      
          tmp += str.substring(m.start(), m.end());
                  }
                  
                  
          char[] ca tmp.toCharArray();        
                  
                  try {
                      
          Robot robot = new Robot();
                      for(
          int x 0ca.lengthx++)
                      {
                          
          robot.keyPress(ca[x]);
                      }
                      
                      if(
          byteCount 8)
                      {
                          
          robot.keyPress(KeyEvent.VK_TAB);
                          
          robot.keyPress(KeyEvent.VK_ENTER);
                      }
                      
                  } catch (
          AWTException e) {
                      
          e.printStackTrace();
                  }
              }

          Comment

          Working...
          X