keybd_event spinnt??
-
Hallo brauch mal wieder Hilfe

und zwar gehts um die Funktion keybd_event().
Mein Programm soll Tastendrücke simulieren, also hab ich mir hier alle Beiträge dazu durchgelesen und mir gleich ne kleine FUnktion dafür geschrieben:
void CGTAToolDlg::PressIt(CString Wort) { for(int i=0;i<Wort.GetLength();i++) { keybd_event((BYTE)Wort[i],0,0,0); keybd_event((BYTE)Wort[i],0,KEYEVENTF_KEYUP,0); //Sleep(50); } }So wenn ich der funktion jetzt das Wort, z.B. Panzer übergebe "tippt" er aber nicht panzer, sondern p1,5

Also hab ich die geschichte mal debuggen lassen und hab mit hilfe von MessageBoxen mal geschaut wie meine Werte die ichd er Funktion übergebe denn so ausschauen, zu meinem bedauern musste ich feststellen, dass ich richtige werte übergebe, (d.h. p,a,n,z,e,r) er aber völlig andere "verarbeitet".
Hab ich irgendeinen ganz dummen fehler gemacht oder ist die funktion der
in person und grade gut gelaunt?
-
Hallo,
du hast übersehen, daß keybd_event virtuelle Tasten-Codes als erstes Argument erwartet. Die API-Funktion VkKeyScan wandelt die "normalen Zeichen" in diese Codes um, deshalb funktioniert folgendes:
void PressIt(CString Wort) { for(int i=0;i<Wort.GetLength();i++) { keybd_event((BYTE)VkKeyScan(Wort[i]),0,0,0); keybd_event((BYTE)VkKeyScan(Wort[i]),0,KEYEVENTF_KEYUP,0); } }MfG