2010-02-28 41 views
3

当两个按键按住一秒钟时,我正试图切换大写锁定开/关。我试过使用virtkey模块,但它不工作。该模块确实适用于其他键,所以我不认为我错误地使用了模块。任何人都知道如何在Python中打开/关闭大写锁定?

有没有人有办法做到这一点?

为了清楚起见,我想实际切换大写锁定开/关,而不仅仅是LED。

谢谢!

回答

4

这对我的作品(打开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 
+1

感谢您的例子!我试图用press_keysym(0xff14)和release_keysym(0xff14) - 这是我用于输入和退格(与我认为是caplock的十六进制值)。我想知道为什么这不起作用......无论如何,它现在效果很好 - 再次感谢! – Justin 2010-03-03 03:40:42

0

有趣的事情。我在口译员中给了virtkey一个尝试,而且看起来好像在工作。在调用press_keycode(50)之后,我的机器像大写锁定一样被按下(Ubuntu 9.10,python-virtkey.50ubuntu2)。如果我释放密钥 - release_keycode(50) - 它表现得没有任何事情发生。

import virtkey 

v = virtkey.virtkey() 
v.press_keycode(50) 

如果作为脚本运行,则按下虚拟终端选项卡上的caps键。很烦人。

你看过xvkbd命令吗?这是一个带有命令行选项的X虚拟键盘,最糟糕的情况是你可以从python中调用它。另一个想法是xmodmap,它允许您重新映射X中的键。有关示例,请参见SU上的this post

+0

这实际上是我用于其他键,我试图用于帽 - 锁。 – Justin 2010-02-28 23:59:35

+4

'xdotool键Caps_Lock'为我翻转大写字母锁。我不知道这是否有助于你。 – Gerry 2012-08-29 13:33:14

相关问题