Кто-нибудь знает, как включить / выключить заглавные буквы в Python? - PullRequest
3 голосов
/ 01 марта 2010

Я пытаюсь включить / выключить заглавные буквы, когда две кнопки переключения удерживаются в течение секунды. Я пытался использовать модуль virtkey, но он не работает. Этот модуль работает для других ключей, поэтому я не думаю, что я использую модуль неправильно.

У кого-нибудь есть способ сделать это?

Просто чтобы прояснить ситуацию, я хочу включить / выключить блокировку заглавных букв, а не только светодиод.

Спасибо!

Ответы [ 2 ]

4 голосов
/ 01 марта 2010

Это работает для меня (включает и выключает светодиоды, а также включает / отключает заглушки)

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
0 голосов
/ 01 марта 2010

Забавная вещь. Я попробовал в 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.

...