我正在尝试调试一个将密钥发送到远程桌面应用程序中的程序的功能。该函数在发送密钥时没有问题,除非它尝试发送句点(“.”)密钥。这是工作代码的示例:
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));
}