在模拟等号(=)和问号(?)的按键时遇到一些问题。 我想如果这两个没有虚拟密钥代码,我应该将按键和释放组合起来,就像这个人用Ctrl-V做的那样: http://batchloaf.wordpress.com/2012/10/18/simulating-a-ctrl-v-keystroke-in-win32-c-or-c-using-sendinput/
我的代码为“=”(SHIFT +“+”):
INPUT ip;
ip.type = INPUT_KEYBOARD;
ip.ki.wScan = 0; // hardware scan code for key
ip.ki.time = 0;
ip.ki.dwExtraInfo = 0;
ip.ki.wVk = VK_LSHIFT;
ip.ki.dwFlags = 0; // 0 for key press
SendInput(1, &ip, sizeof(INPUT));
// Press the "+" key
ip.ki.wVk = VK_OEM_PLUS;
ip.ki.dwFlags = 0; // 0 for key press
SendInput(1, &ip, sizeof(INPUT));
// Release the "+" key
ip.ki.wVk = VK_OEM_PLUS;
ip.ki.dwFlags = KEYEVENTF_KEYUP;
SendInput(1, &ip, sizeof(INPUT));
// Release the "Shift" key
ip.ki.wVk = VK_LSHIFT;
ip.ki.dwFlags = KEYEVENTF_KEYUP;
SendInput(1, &ip, sizeof(INPUT));
输出“+”符号。我需要它来工作,最好是任何Windows操作系统,但至少是Windows XP(不确定它是否有所作为)。
谢谢。
答案 0 :(得分:4)
=
字符是=
/ +
键上的非大写字符,而+
是大写字符。因此,要输出等号,只需使用(命名错误的)VK_OEM_PLUS
虚拟键码。