Como eu uso o módulo Python "keyboardleds" para determinar o estado do Caps Lock?

1
  1. Eu quero que meu sistema verifique o estado do Caps Lock (ligado ou desligado) por inspecionando o teclado DIRETAMENTE. Depois de muita pesquisa, eu entendo que isso pode ser feito em Python usando o módulo "keyboardleds".

    Eu não estou familiarizado com o Python, , então meu pedido principal é: você pode me dizer como use o módulo keyboardleds em um script Python, para que ele me diga o que o estado do Caps Lock é? A versão do Python no meu sistema é 2.7.3rc2.

  2. A informação que eu encontrei sobre "keyboardleds", é muito técnica para mim Compreendo. Também um exemplo que encontrei de como o keyboardleds é usado, usa programação python que eu não entendo também. Além disso, o exemplo que eu olhei usa teclados para um de seus outros propósitos, não para o propósito que eu quero (ou seja, determinar o estado do Caps Lock).

    Eu nem sei o que significam os comandos "import" no início do script de exemplo e se preciso de todos eles.

    Eu ficaria muito grato se você pudesse me dizer quais comandos python eu preciso usar, e que conteúdo detalhado eu coloquei neles.

  3. Eu só preciso do script python para dar um status de saída de zero (verdadeiro) se Caps O bloqueio está desativado e um status de saída 1 (falso) se o Caps Lock estiver ativado.

    Digamos que o script python seja chamado de "capslockstate". Então eu vou usá-lo em um script bash da seguinte forma:

    if capslockstate
    then
       <perform an action based on the fact that Caps Lock is off>
    else
       <perform an action based on the fact that Caps Lock is on>
    fi
    
  4. SIGNIFICATIVO EU ACREDITO:

    Com relação ao acesso ao teclado, as informações encontradas referem-se ao uso de /dev/console , /dev/input/event* e /dev/input/by-path/*-event-kbd . No meu sistema, todos os 3 deles existem. Nos últimos dois casos, tenho o seguinte no meu sistema:

    /dev/input/event0 through to /dev/input/event9.
    
    /dev/input/by-path/platform-i8042-serio-0-event-kbd   
    ### ie only ^this^ one item exists
    

    O "by-path" é o nome do diretório real .

    Acredito que uma das entidades acima de 2 "/ dev / input / ..." é o que eu preciso usar (em oposição a /dev/console ), mesmo que eu não entenda os prós e contras dela .

  5. Abaixo estão os sites em que encontrei as informações sobre teclados:

    1. O primeiro site que me colocou usando teclados (com exemplos muito complexos para mim):

      link

      O que me interessa particularmente neste site é o comentário "o programa [keyboardleds] acessa o teclado DIRETAMENTE."

    2. Documentação oficial, eu acredito, no keyboardleds (muito complexo para eu entender):

      link

    3. O site do autor dos teclados:

      link

por dave 26.09.2015 / 23:12

1 resposta

0

Eu tenho tido sorte usando:

from win32con import VK_CAPITAL
if GetKeyState(VK_CAPITAL) == 1:
    print ("CAPS Lock is on.")
elif GetKeyState(VK_CAPITAL) == 0:
    print ("CAPS Lock is off.")

Isto está em um computador Windows com Python3, então não é 100% seguro se ele funciona no Linux também, mas vale a pena notar como uma opção para aqueles que precisam fazer isso no Windows, isso funciona com certeza nesse caso - vi eu mesmo.

Randy

    
por 29.07.2018 / 16:39