Мне нужно узнать в каком состоянии находится указанная клавиша.
Меня не интересуют библиотеки, типа python > keyboard или mouse так как они иначе работают.
Точно не знаю, но вроде они ставят краткосрочные хуки которые снимаются через несколько секунд.
И не могут определить нажата ли клавиша. Если вызов проверки идет после уже нажатия клавиши.
(это касается эмулированных нажатий, то что мне надо. Реальные устройство вроде как постоянно обновляют статус нажатия,)
Я знаю что система создает состояния клавиш для каждого HID устройства и вывода клавиатуры. То есть у неё есть списки того, что в данный момент нажато. Как я могу их получить или узнать о состоянии как либо ещё ?
Возможен другой вопрос как я могу узнать к какому списку относится мой вывод , когда я эмулирую клавиши со скан кодов или pyautogui.
На вопрос «как сделать» отвечает документация и поиск в интернет.
Тут отвечают на вопросы «почему я сделал, как в документации, а оно не работает. Поискал в интернет, вот запросы, в ответах не нашел. Что я делаю не так?»
Покажите, как вы пробовали решить проблему, приведите код попытки (пусть неудачной), опишите, как запускали, что ожидали и что получилось.
За готовыми решениями - на фриланс. В текущем виде это не вопрос, а задание. Нарушен п.5.12 Регламента.
Знаю ты просил ни какого keyboard но все равно попробуй такой подход.
import keyboard
import time
class KeyL:
def __init__(self) -> None:
self.edge = ''
def status(self, k): #этот функция фиксирует только нажатие и отпускание а не удерживание
if k.event_type != self.edge:
print('Key A', k.event_type)
self.edge = k.event_type
a = KeyL()
keyboard.hook_key('A', a.status)
while True:
time.sleep(10) #здесь значение задержки не имеет значение, этот цикл чтобы программа не закрылось
цикл while для того чтобы не закрывалось программа, тут задержку можешь ставит сколь в душе угодно. В цикле while можешь написать программу, hook_key будет работать в отдельном потоке.
Это можно было сделать с замыканием функции не используя класс, но в классе можно написать дополнительные функционал если позже тебе понадобится.