Как и в вопросе, я знаю, что это возможно в Linux, но я не смог найти ничего нового для Windows. Это вообще возможно?
Python 3.x — получение состояния caps-lock/num-lock/scroll-lock в Windows
comment
Если вам просто нужны настраиваемые ключи блокировки блокировки, вы всегда можете сделать логическое значение в классе, например, в программе Tkinter. Затем вы можете изменить свое состояние при нажатии определенной клавиши, и вещи будут вести себя по-разному в разных состояниях. Это эффективно избавляет от необходимости беспокоиться о том, все ли замки официально включены или выключены. Конечно, это может показаться слишком упрощенным и требует много работы (не затрагивая подсветку замков), но, по крайней мере, это кросс-платформенное решение. Причина, по которой я не опубликовал это как ответ, заключается в том, что речь идет о создании вашего собственного состояния (а не о проверке состояния).
- person Brōtsyorfuzthrāx   schedule 30.04.2014
comment
Но проблема с этим подходом заключается в том, что «Caps» уже нажат, т.е. «включен» во время запуска программы.
- person Vivek   schedule 21.12.2018
Ответы (2)
Вы можете использовать ctypes для загрузки user32.dll, а затем вызвать GetKeyState с nVirtKey = VK_CAPITAL ( 0x14)
def get_capslock_state():
import ctypes
hllDll = ctypes.WinDLL ("User32.dll")
VK_CAPITAL = 0x14
return hllDll.GetKeyState(VK_CAPITAL)
person
Abhijit
schedule
16.01.2014
Установите pywin32
для Python 3.x
Вот пример проверки состояния CapsLock.
from win32api import GetKeyState
from win32con import VK_CAPITAL
GetKeyState(VK_CAPITAL)
person
Jakob Bowyer
schedule
16.01.2014
Также работает для Python 2.7. Для импорта numlock VK_NUMLOCK
- person Marjoram; 22.07.2016