有人知道如何在Python中切换大写锁定吗?
我想在按住两个Shift键一秒钟的时候,切换大写锁定的开关。我试过用virtkey这个模块,但它没有效果。不过这个模块对其他按键是有效的,所以我觉得我没有用错这个模块。
有没有人知道怎么做到这一点?
为了明确,我是想真正切换大写锁定的开关,而不仅仅是控制指示灯。
谢谢!
2 个回答
0
有趣的是,我在解释器中试了一下virtkey,感觉它是有效的。在调用press_keycode(50)
后,我的电脑就像按下了大写锁定键一样(Ubuntu 9.10,python-virtkey .50ubuntu2)。如果我释放这个键release_keycode(50)
,它就像什么都没发生过一样。
import virtkey
v = virtkey.virtkey()
v.press_keycode(50)
如果作为脚本运行,它会让大写键在虚拟终端标签页中保持按下状态。这非常烦人。
你有没有考虑过xvkbd命令?它是一个带有命令行选项的X虚拟键盘,最糟糕的情况是你可以从python中调用它。另一个可以研究的想法是xmodmap,它可以让你在X中重新映射键位。可以查看这篇帖子,里面有个例子。
5
这个对我来说有效(可以开关LED灯,还能启用或禁用大写锁定)
import virtkey
v = virtkey.virtkey()
v.press_keycode(66)
v.release_keycode(66) # first release doesn't release it
v.release_keycode(66)
这里还有一些其他的例子
v.press_keycode(66) # turns capslock on
v.release_keycode(66)
v.press_keycode(66) # turns capslock off
v.release_keycode(66)
你也可以仅仅使用release_keycode来实现类似开关的效果
v.release_keycode(66) # toggles capslock
v.release_keycode(66) # toggles back again capslock