Tastatur
-
Hallo Forum,
ich möchte Eingaben vom Nutzer in Tastatur Scancode umsetzen.
Sprich ich lesen mit scanf() einen string ein und möchte ihn dann in die entsprechenden Tastencodes ausgeben lassen.Nun meine Frage wie mach ich das?
Also der Nutzer drückt ein e daraufhin wird der code 0x24 ausgegeben auf dem Bildschirm.
Danke für die Hilfe schonmal
-
du konvertierst die Eingabe in eine unsigned short integer und gibst diese dann mit
printf("0x%02.2X",..) aus.
-
Sorry, aber irgendwie funzt das nicht.
Ich hab den Tastatur scancode noch nicht.
Also ich les ein string einchar *str; scanf("%s", str);
so nun will ich den string oder das Zeichen in Scancode konvertieren.
Bei diener ausgabe krieg ich nur sowas raus:
0x80484E4
Das problem ist das die ausgabe nur HEX ausgibt und der scancode wäre in dem fall der ascii code den ich nicht brauche
Nehmen wir mal ein A hat den dez wert 65 hex 41 und der scancode is hex 1C.
Nun möchte ich aber von einem String den kompletten scancode also z.b. so
*string = "hi";
so nun sähe das über die Tastatur so aus:
33 F0 33 <-- h
43 F0 43 <-- iSo nun soll es so sein das ich das emulieren möchte mit meinem programm sprich ich möchte die eingegebenen Daten (den string) in Scancodes Umwandeln.
hoffe mir kann wer helfen
-
Der Scancode existiert doch zu dem Zeitpunkt schon gar nicht mehr, da die Umsetzung Scancode -> Zeichencode im Tastaturtreiber erfolgt. Wie sollte das beispielsweise funktionieren ... wenn du ein 'Y' hast, ist das schonmal auf englischen und deutschen Tastaturen eine andere Taste, also auch ein anderer Scancode. Ausserdem kann das auch per Alt+Asciicode eingegeben worden sein (unter Win/DOS). Oder sonstwas.
-
darum geht mir das garnicht :).
Ich möchte die Tasten Scancodes emulieren, ist mir egal ob deutsch oder englisch ich möchte nur für den string die Scancode folge berechnen oder ausgeben oder sonstwas
-
Mach eine Tabelle mit allen möäglichen Tastendrückkombinationen, wenn dann eine davon auftritt gibst du den zugehörige Scancodetext aus.
// h i char ScanCodeTab[xx][]={... ,{"33 F0 33"},{"43 F0 43"}, ...};
Hast du hier an das zugehörige malloc gedacht?
char *str; scanf("%s", str);