napuznik
Фев. 7, 2020 07:58:53
Добрый день, подскажите, пожалуйста, как узнать, что нажата виртуальная клавиша, а не физическая?
Модуль win32api этой командой эмулирует нажатие левой клавиши мыши:
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0)
А этой командой можно определить, нажата клавиша, или нет:
win32api.GetAsyncKeyState(win32con.VK_LBUTTON)
Но последняя команда не отличает эмулированые клавиши от физического клика мышкой. Мне нужно точно определить, что нажата именно виртуальная или физическая клавиши. Возможно, есть другая команда или модуль, который это умеет?
Заранее спасибо
DamMercul
Фев. 8, 2020 20:45:33
Windows API методы, взаимодействующие с рабочим окружением или устройствами, работают также, если бы ты сделал это сам мышью. Можно попробовать проверить логи Windows (Windows Event Log)
napuznik
Фев. 9, 2020 08:16:35
DamMercul
Спасибо за ответ. Возможно, есть другой способ эмулировать нажатия, что бы winapi определял, что они не физические?
PEHDOM
Фев. 9, 2020 13:55:13
napuznik
DamMerculСпасибо за ответ. Возможно, есть другой способ эмулировать нажатия, что бы winapi определял, что они не физические?
вроде есть дргуой способ определять физические ли нажатия. смотрите в сторону rawinput
https://docs.microsoft.com/en-us/windows/win32/inputdev/raw-inputнасколько я понимаю там можно не только узнать какие клавиши нажаты но и узнать истоник см. GetRawInputDeviceInfo