Так же, как вопрос спрашивает, я знаю, что это возможно onLinux, но я не смог найти что-нибудь недавнее для Windows. Возможно ли это?Python 3.x - Получение состояния блокировки блокировки/блокировки номера/блокировки прокрутки в Windows
3
A
ответ
3
Вы можете использовать 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)
3
Установка pywin32
для Python 3.x
Вот пример для проверки состояния CapsLock.
from win32api import GetKeyState
from win32con import VK_CAPITAL
GetKeyState(VK_CAPITAL)
+0
Также работает для python 2.7. Для импорта numlock VK_NUMLOCK – Marjoram
Если вы просто хотите пользовательские блокировки на клавишах блокировочных, вы всегда можете сделать логическое значение в класс, такой как программа Tkinter. Тогда у вас может быть определенное нажатие клавиши, измените ее состояние, и в разных состояниях все будет вести себя по-разному. Это эффективно обходит необходимость беспокоиться о том, все ли замки официально включены или выключены. Конечно, это может показаться чересчур упрощенным и как много работы (не затрагивая огни для замков), но это кросс-платформенный, по крайней мере. Причина, по которой я не публиковал это как ответ, состоит в том, что речь идет о создании собственного состояния (не проверяя состояние). – Shule