在Python中更改键盘锁
有没有办法在Python中,程序matically 改变 CAPS LOCK/NUM LOCK/SCROLL LOCK的状态?
这不是开玩笑的问题——更像是一个真实的问题,用于一个搞笑的程序。我打算用它来让指示灯做一些有趣的事情……
6 个回答
7
这对提问者可能没什么帮助,但分享出来也许会对其他人有用,因为我当时也在找这个答案,却找不到不使用第三方模块的解决办法。这是我用来打开大写锁定键的方法。
import ctypes
def turn_capslock():
dll = ctypes.WinDLL('User32.dll')
VK_CAPITAL = 0X14
if not dll.GetKeyState(VK_CAPITAL):
dll.keybd_event(VK_CAPITAL, 0X3a, 0X1, 0)
dll.keybd_event(VK_CAPITAL, 0X3a, 0X3, 0)
return dll.GetKeyState(VK_CAPITAL)
print(turn_capslock())
19
在Linux系统上,这里有一个Python程序,可以让所有键盘上的指示灯闪烁开关:
import fcntl
import os
import time
KDSETLED = 0x4B32
SCR_LED = 0x01
NUM_LED = 0x02
CAP_LED = 0x04
console_fd = os.open('/dev/console', os.O_NOCTTY)
all_on = SCR_LED | NUM_LED | CAP_LED
all_off = 0
while 1:
fcntl.ioctl(console_fd, KDSETLED, all_on)
time.sleep(1)
fcntl.ioctl(console_fd, KDSETLED, all_off)
time.sleep(1)
16
如果你在使用Windows系统的话,我觉得可以用SendKeys来实现这个功能。
你可以查看这个链接了解更多信息:http://www.rutherfurd.net/python/sendkeys
import SendKeys
SendKeys.SendKeys("""
{CAPSLOCK}
{SCROLLOCK}
{NUMLOCK}
""")