Sendinput и mapvirtualkeyex
Приветствую вас!
Для удаленного управления (перемещения, масштабирования) видеокамерой я посылаю нажатия клавиш в приложение управления windows.
Я использую SendInput и MapVirtualKeyEx для перевода кода виртуальной клавиши в код сканирования клавиатуры,
потому что клавиши extendend, такие как VK_NUMPAD0-VK_NUMPAD9 и 4 клавиши со стрелками, используются для управления камерой.
Это хорошо работает для основных клавиш A-Z 0-9 BS, SPACE, CR, NL и ENTER.
Метод получения wScan я использую
input.ki.wScan = MapVirtualKeyEx(VkKeyScanA(keycode), MAPVK_VK_TO_VSC, GetKeyboardLayout(0));Как уже говорилось, это хорошо работает для базовых клавиш, но расширенные клавиши переводятся неправильно.
В настоящее время я обычно устанавливаю соответствующий wScan.
Что такое правильный способ, чтобы полностью перевести виртуальные клавиши в код wScan клавиатуры?
Спасибо за подсказки
Волк
Что я уже пробовал:
if (!raw) { input.ki.wScan = MapVirtualKeyEx(VkKeyScanA(keycode), MAPVK_VK_TO_VSC, GetKeyboardLayout(0)); } else { input.ki.wScan = keycode; // scancode, manually supplied } input.ki.wVk = 0; // virtual key input.type = INPUT_KEYBOARD; input.ki.time = 200; input.ki.dwExtraInfo = 0;