C++: Tastendruck simulieren
-
Hi,
ich wollte fragen wie man mit reinem C++ einen Tastendruck simulieren kann.LG
YoshiLion
-
Mit reinem C++: Gar nicht. Das kennt nicht mal Tasten.
Mit Hilfe einer Systembibliothek, die du durch C++ ansprechen kannst: Frag im entsprechenden Forum nach.
Wie du es machen solltest: AutoIT
-
So geht es auf Windows.
//http://msdn.microsoft.com/en-us/library/ms646271.aspx //http://msdn.microsoft.com/en-us/library/ms927178.aspx #include <windows> #include <iostream> using namespace std; void Simulate(unsigned KeyInHex); int main() { Sleep(1000); // Wait 1 second (1000ms = 1 second) Simulate(0x31); // 0x31 = Taste 1 return 0; } void Simulate(unsigned KeyInHex) { UINT HardwareScanCode ; HardwareScanCode = MapVirtualKey ( KeyInHex, 0); // Get the hardware scan code INPUT data; data.type = INPUT_KEYBOARD; data.ki.wVk = KeyInHex; data.ki.wScan = HardwareScanCode; data.ki.dwFlags = 0; data.ki.time =0; data.ki.dwExtraInfo = 0; SendInput (1 , &data, sizeof(data)); // push the button data.ki.dwFlags = KEYEVENTF_KEYUP; SendInput (1 , &data, sizeof(data)); // release the button }
-
unsigned KeyInHex
lol

Gegenvorschlag:void Simulate(UINT virtualKeyCode) { INPUT data = {}; data.type = INPUT_KEYBOARD; data.ki.wVk = virtualKeyCode; data.ki.wScan = MapVirtualKey(virtualKeyCode, MAPVK_VK_TO_VSC); // get the hardware scan code SendInput(1, &data, sizeof(data)); // push the button data.ki.dwFlags = KEYEVENTF_KEYUP; SendInput(1, &data, sizeof(data)); // release the button }