Ich versuche, ein CTRL +SHIFT + END Tastenhub zu einer Kontrolle, in einer C++ Anwendung mit Embarcadero geschrieben zu senden. Ich verwende den folgenden Code:Send auf C++ ist Ctrl nicht nehmen und
tagINPUT ip;
ip.type = INPUT_KEYBOARD;
ip.ki.wScan = 0;
ip.ki.time = 0;
ip.ki.dwExtraInfo = 0;
// Appui sur Ctrl
ip.ki.wVk = VK_CONTROL;
ip.ki.dwFlags = 0;
SendInput(1, &ip, sizeof(INPUT));
// Appui sur Shift
ip.ki.wVk = VK_SHIFT;
ip.ki.dwFlags = 0;
SendInput(1, &ip, sizeof(INPUT));
// Appui sur End
ip.ki.wVk = VK_END;
ip.ki.dwFlags = 0;
SendInput(1, &ip, sizeof(INPUT));
Application->ProcessMessages();
// Relacher End
ip.ki.wVk = VK_END;
ip.ki.dwFlags = KEYEVENTF_KEYUP;
SendInput(1, &ip, sizeof(INPUT));
// Relacher Shift
ip.ki.wVk = VK_SHIFT;
ip.ki.dwFlags = KEYEVENTF_KEYUP;
SendInput(1, &ip, sizeof(INPUT));
// Relacher Ctrl
ip.ki.wVk = VK_CONTROL;
ip.ki.dwFlags = KEYEVENTF_KEYUP;
SendInput(1, &ip, sizeof(INPUT));
Es ist jedoch zu funktionieren scheint, wie wenn es keine Wirkung auf die CTRL und SHIFT Schlüssel war.
Was fehlt mir?
sendinput ist nicht Teil des Standard-C++, sollten Sie mehr Tags zu Ihrer Frage hinzufügen, wenn Sie es so lassen, sollten Sie den Code zu dieser sendinput-Funktion hinzufügen, aber ich nehme an, dass Sie es nicht haben, nicht Jeder, der C++ verwendet, verwendet Embarcadero. – exs
Um ehrlich zu sein, verwende ich das SendInput, das von dem Projekt kam, eingeschlossen in einer win32.h Datei. Dies wurde von jemand anderem getan, der nicht mehr in meiner Firma ist, daher kann ich keine genaue Vorstellung davon geben, was es tut. –
Es ist für die Synthese Tastenanschläge verwendet – Asesh