Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 15, 2014 14:27:35

newpy
Зарегистрирован: 2014-08-12
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

как узнать не нажата ли клавиша?

например ctrl, shift или, допустим, alt
не перехвать событя нажатия, а просто узнать положение клавиши.

какой способ платформо-независимый? и какой виндовс-завиисимый?
и какой из них предпочтительней с точки зрения быстродействия?

________________________________
базовая версия питона 3,4 на win7-32



__________________
py3.7.8-64 win10-64

Офлайн

#2 Авг. 15, 2014 17:00:35

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

как узнать не нажата ли клавиша?

Найди книжку Нортона по программированию DOS.

Офлайн

#3 Авг. 16, 2014 21:11:32

newpy
Зарегистрирован: 2014-08-12
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

как узнать не нажата ли клавиша?

накручиваешь себе количество постов? что попало пишешь.. гы-гы..



__________________
py3.7.8-64 win10-64

Офлайн

#4 Авг. 16, 2014 22:13:41

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

как узнать не нажата ли клавиша?

А ты почитай - узнаешь.

Офлайн

#5 Авг. 17, 2014 09:05:27

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

как узнать не нажата ли клавиша?

newpy
а просто узнать положение клавиши.
Если спускаться до уровня контроллера клавиатуры, то насколько я понимаю по интерфейсу идут сканкоды нажатия и отжатия кнопок. Дальше поведение определяется драйверами. http://usepcok.ru/D_KBD/KBD_Princ.html
Интерпретация сканкодов в bios понятна из описания int 16 http://stanislavs.org/helppc/int_16.html.
Т.е. нет не только платформенно независимого но и вообще никакого способа опростить клавиатуру на предмет положения ее кнопок. Она физически не поддерживает такой интерфейс.
Конечно операционная система или программа может накапливать эту информацию.
http://msdn.microsoft.com/en-us/library/windows/desktop/ms646301(v=vs.85).aspx
Для указанных вами кнопок ос сопровождает каждое нажатие на кнопки (уже виртуальные а не физические) кодами состояния ctrl,alt,shift
Пользоваться кривыми интерфейсами которые позволяют считывать этот статус крайне нежелательно, поскольку это не соответствует принципу работы клавиатуры и не поддерживается большинством разработчиков :)



Отредактировано doza_and (Авг. 17, 2014 09:14:49)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version