2014-01-16 2 views
3

Так же, как вопрос спрашивает, я знаю, что это возможно onLinux, но я не смог найти что-нибудь недавнее для Windows. Возможно ли это?Python 3.x - Получение состояния блокировки блокировки/блокировки номера/блокировки прокрутки в Windows

+0

Если вы просто хотите пользовательские блокировки на клавишах блокировочных, вы всегда можете сделать логическое значение в класс, такой как программа Tkinter. Тогда у вас может быть определенное нажатие клавиши, измените ее состояние, и в разных состояниях все будет вести себя по-разному. Это эффективно обходит необходимость беспокоиться о том, все ли замки официально включены или выключены. Конечно, это может показаться чересчур упрощенным и как много работы (не затрагивая огни для замков), но это кросс-платформенный, по крайней мере. Причина, по которой я не публиковал это как ответ, состоит в том, что речь идет о создании собственного состояния (не проверяя состояние). – Shule

ответ

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