Zitat von
Thorondor:
naja, mag ja gut und schön sein, aber wenn ich den buchstaben 'a' ausgeben lassen will und das wie oben schreibe (als einzelnen buchstaben) gibt das eine '1' anstatt 'a' aus. analog dazu dann 2 für b, 3 für c usw.. wie kann man das umgehen/ändern?!
Die Funktion keybd_event möchte als Argument nicht den Ansicode sondern den
Virtual Keycode haben.
Der Ansicode von Buchstabe 'a' ist 97 dezimal.
Kuckst du in der
Unit Windows.pas und findest dort:
VK_NUMPAD1 = 97;
Also entspricht 97 dem Tastendruck auf die "1" im Nummernblock.
In der
Unit windows.pas findest du alle virtual keycodes. (einfach nach VK_LBUTTON suchen)
Es gibt für jede Taste auf der Tastatur einen virtual keycode.
Da es ca. 103 Tasten sind gibt es grob gesagt auch ebensoviele virt. keycodes.
Ob jetzt ein Klein- oder ein Grossbuchstabe gedrückt wird, hängt vom Shiftstatus ab.
Für ein grosses A musst du also:
SHIFT drücken, Taste a drücken, Taste a loslassen, SHIFT loslassen.
Aber wie gesagt: nimm die
Unit SndKey32 und du brauchst dir darüber keine Gedanken machen.