Groß/Kleinschreibung bei SendInput
-
Hallo,
ich gebe mit SendInput einen Text aus, leider wird da die Groß & Kleinschreibung ignoriert.
Also erstmal die Funktion:string srang("^hallo"); for (int i = 0; i<srang.length(); i++) { if (srang[i] == "^") { keybd_event(VK_LSHIFT,0,0,0); INPUT InputData; int iEvents; InputData.type = INPUT_KEYBOARD; InputData.ki.wVk = VkKeyScan(srang[i+1]); InputData.ki.wScan = 35; InputData.ki.dwFlags = 0; InputData.ki.time = (NULL); InputData.ki.dwExtraInfo = 0; iEvents = SendInput(1, &InputData, sizeof(InputData)); keybd_event(VK_LSHIFT,0,0,WM_KEYUP); } else { INPUT InputData; int iEvents; InputData.type = INPUT_KEYBOARD; InputData.ki.wVk = VkKeyScan(srang[i]); InputData.ki.wScan = 35; InputData.ki.dwFlags = 0; InputData.ki.time = (NULL); InputData.ki.dwExtraInfo = 0; iEvents = SendInput(1, &InputData, sizeof(InputData)); } }Der Sinn davon soll sein, das jeder Buchstabe vor dem ein "^" steht großgeschrieben werden soll.
Aber auf diese Weise wird der ganz Text groß geschrieben.
Hofe ihr könnt mir helfen

MFG!
-
Wie wäre es mit dem Event KEYEVENTF_KEYUP anstelle von WM_KEYUP? Steht so jedenfalls ind er MSDN http://msdn.microsoft.com/en-us/library/ms646304
-
Kann jemand diesen Riesenschrott in ein Minischrott-Forum verschieben? Er würde meinem Ästhetikempfinden einen grossen Gefallen tun.
-
esthete schrieb:
Kann jemand diesen Riesenschrott in ein Minischrott-Forum verschieben? Er würde meinem Ästhetikempfinden einen grossen Gefallen tun.
Nicht so hastig. Ein alter Mod ist kein D-Zug.
Wobei: 90 Minuten Verspätung, davon träumt die Bahn derzeit.

-
Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (auch C++0x) in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
SendInput() und keybd_event() zu mixen ist schon krass *g*
-
HighLigerBiMBam schrieb:
Wie wäre es mit dem Event KEYEVENTF_KEYUP anstelle von WM_KEYUP? Steht so jedenfalls ind er MSDN http://msdn.microsoft.com/en-us/library/ms646304
Damit gehts auch nicht. Oder kann man mit SendInput eine Taste für eine bestimmte Zeit drücken?
-
Du musst auch VK_SHIFT durch SendInput emulieren.
Wie Du eben auf der Tastatur auch schreibst.
Auch ie Länge des Tastendrucks wird exakt durch die Abstände von Keydown und Keyup bestimmt bei SendInput.