2010-02-28 67 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

相關問題