我正在尝试调试一个将密钥发送到远程桌面应用程序中的程序的函数。除了尝试发送句点(“。”)键之外,该功能在发送键时没有问题。以下是工作代码的示例:
void PlayKeyboardEvent(int vkey, int bscan)
{
INPUT input[4];
int num_input = 0;
// key down
input[num_input].type = INPUT_KEYBOARD;
input[num_input].ki.wVk = vkey;
input[num_input].ki.wScan = MapVirtualKey( VkKeyScan(vkey) & 0xFF, MAPVK_VK_TO_VSC);
input[num_input].ki.dwFlags = 0;
input[num_input].ki.time = 0;
input[num_input].ki.dwExtraInfo = NULL;
num_input++;
SendInput(num_input, input, sizeof(INPUT));
// reset for the key up
num_input = 0;
// key up
input[num_input].type = INPUT_KEYBOARD;
input[num_input].ki.wVk = vkey;
input[num_input].ki.wScan = MapVirtualKey( VkKeyScan(vkey) & 0xFF, MAPVK_VK_TO_VSC);;
input[num_input].ki.dwFlags = KEYEVENTF_KEYUP;
input[num_input].ki.time = 0;
input[num_input].ki.dwExtraInfo = NULL;
num_input++;
SendInput(num_input, input, sizeof(INPUT));
}