C ++模拟按等号(=)和问号(?)

时间:2013-07-17 12:45:35

标签: c++ simulation virtual-keyboard

在模拟等号(=)和问号(?)的按键时遇到一些问题。 我想如果这两个没有虚拟密钥代码,我应该将按键和释放组合起来,就像这个人用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(不确定它是否有所作为)。

谢谢。

1 个答案:

答案 0 :(得分:4)

=字符是= / +键上的非大写字符,而+是大写字符。因此,要输出等号,只需使用(命名错误的)VK_OEM_PLUS虚拟键码。

相关问题