Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 7, 2020 07:58:53

napuznik
Зарегистрирован: 2012-07-25
Сообщения: 71
Репутация: +  0  -
Профиль   Отправить e-mail  

Узнать, что нажата виртуальная клавиша, а не реальная

Добрый день, подскажите, пожалуйста, как узнать, что нажата виртуальная клавиша, а не физическая?

Модуль win32api этой командой эмулирует нажатие левой клавиши мыши:
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0)

А этой командой можно определить, нажата клавиша, или нет:
win32api.GetAsyncKeyState(win32con.VK_LBUTTON)

Но последняя команда не отличает эмулированые клавиши от физического клика мышкой. Мне нужно точно определить, что нажата именно виртуальная или физическая клавиши. Возможно, есть другая команда или модуль, который это умеет?

Заранее спасибо

Отредактировано napuznik (Фев. 7, 2020 08:07:05)

Офлайн

#2 Фев. 8, 2020 20:45:33

DamMercul
Зарегистрирован: 2017-11-26
Сообщения: 323
Репутация: +  13  -
Профиль   Отправить e-mail  

Узнать, что нажата виртуальная клавиша, а не реальная

Windows API методы, взаимодействующие с рабочим окружением или устройствами, работают также, если бы ты сделал это сам мышью. Можно попробовать проверить логи Windows (Windows Event Log)



____________________________________________________

 # Life loop
while alive:
    if (fun > boredom) and money:
        pass_day(fun, boredom, money)
        continue
    else: break

Офлайн

#3 Фев. 9, 2020 08:16:35

napuznik
Зарегистрирован: 2012-07-25
Сообщения: 71
Репутация: +  0  -
Профиль   Отправить e-mail  

Узнать, что нажата виртуальная клавиша, а не реальная


DamMercul
Спасибо за ответ. Возможно, есть другой способ эмулировать нажатия, что бы winapi определял, что они не физические?

Офлайн

#4 Фев. 9, 2020 13:55:13

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Узнать, что нажата виртуальная клавиша, а не реальная

napuznik
DamMerculСпасибо за ответ. Возможно, есть другой способ эмулировать нажатия, что бы winapi определял, что они не физические?
вроде есть дргуой способ определять физические ли нажатия. смотрите в сторону rawinput
https://docs.microsoft.com/en-us/windows/win32/inputdev/raw-input
насколько я понимаю там можно не только узнать какие клавиши нажаты но и узнать истоник см. GetRawInputDeviceInfo



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#5 Фев. 15, 2020 05:38:06

napuznik
Зарегистрирован: 2012-07-25
Сообщения: 71
Репутация: +  0  -
Профиль   Отправить e-mail  

Узнать, что нажата виртуальная клавиша, а не реальная

PEHDOM
Спасибо!

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version