2
我想擊鍵發送CTRL + SHIFT + END 的控制,在Embarcadero公司編寫的C++應用程序。我使用下面的代碼:SendInput對C++不採取Ctrl和Shift帳戶
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));
然而,就像如果有在CTRL任何動作SHIFT鍵似乎是工作。
我失蹤了什麼?
sendinput不是標準C++的一部分,你應該在你的問題中包含更多的標籤,如果你這樣留下,你應該包含該sendinput函數的代碼,但我猜你沒有它,不是每個使用C++的人都使用Embarcadero。 – exs
說實話,我使用的是來自該項目的SendInput,附帶在win32.h文件中。這是由不在我公司的其他人完成的,所以我不能給出任何準確的想法。 –
它用於合成擊鍵 – Asesh