Simulierte Tastatureingabe an tty senden



  • Hallo

    ich habe eine Anwendung, die direkt auf der Konsole läuft, ohne X.
    Diese wird über die Tastatur bedient. Ich möchte nun ein eigenes Programm schreiben, dass diese Anwendung steuern kann.

    Geschafft habe ich es bereits, normale Zeichen im Input Buffer der tty abzulegen.

    #include <stdio.h>
    #include <sys/ioctl.h>
    #include <fcntl.h>
    
    int main(int argc, char *argv[])
    {
      int f;
      char *c;
    
      if ((f = open(argv[1], O_RDWR)) != -1)
      {
        for (c = argv[2]; *c; c++)
        {
          ioctl(f, TIOCSTI, c);
        }
      }
    
      return 0;
    }
    

    Damit funktionieren Sachen wie Taste "s" oder Befehle wie "/k04"

    Aber: Die Anwendung erwartet auch Tasten wie F1-12, Pg Up, kurz alle Tasten der Tastatur. Wie kann ich diese nun an die Anwendung schicken?



  • Ich würde sagen das einfachste wäre es die Ausgabe des Steuerungsprogramms über Pipes als Eingabe des Programms zu nutzen. Da könnte man dann ein Shellskript (oder auch ein C-Programm) einfach die Befehle ausgeben lassen also sowas

    control_program | other_program
    


  • didida schrieb:

    Aber: Die Anwendung erwartet auch Tasten wie F1-12, Pg Up, kurz alle Tasten der Tastatur. Wie kann ich diese nun an die Anwendung schicken?

    dumpkeys gibt dir Auskunft über die Keycodes, die das Programm erwartet. :3


Anmelden zum Antworten