Я пытаюсь отладить функцию, которая отправляет ключи в программу в приложении удаленного рабочего стола. У функции нет проблем с отправкой ключей, кроме случаев, когда она пытается отправить ключ точки («.»). Вот пример рабочего кода:
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));
}
Задача ещё не решена.
Других решений пока нет …