3

2つのシフトボタンを1秒間押し続けたときに、CapsLockのオン/オフを切り替えようとしています。virtkeyモジュールを使用してみましたが、機能しません。ただし、そのモジュールは他のキーでも機能するので、モジュールを誤って使用しているとは思いません。

誰かがこれを行う方法がありますか?

明確にするために、LEDだけでなく、実際にCapsLockのオン/オフを切り替えたいと思います。

ありがとう!

4

2 に答える 2

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
于 2010-03-01T00:16:46.053 に答える
0

面白いこと。通訳でvirtkeyを試してみたところ、うまくいったようです。を呼び出した後press_keycode(50)、私のマシンはCaps Lockが押されたように動作します(Ubuntu 9.10、python-virtkey .50ubuntu2)。キーを離すと---release_keycode(50)何も起こらなかったように動作します。

import virtkey

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

スクリプトとして実行する場合は、仮想端末タブでcapsキーを押したままにします。とてもうるさい。

xvkbdコマンドを調べましたか?これは、コマンドラインオプションを備えたX仮想キーボードであり、最悪の場合、Pythonから呼び出すことができます。調べるべきもう1つのアイデアは、Xでキーを再マップできるxmodmapです。例については、SUに関するこの投稿を参照してください。

于 2010-02-28T23:46:49.373 に答える