1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

  2. Anuncie Aqui ! Entre em contato fdantas@4each.com.br

[Python] Usando pynput para simular teclado, problemas com o uso de GlobalHotKeys

Discussão em 'Python' iniciado por Stack, Setembro 25, 2021.

  1. Stack

    Stack Membro Participativo

    Estou tentando fazer alguns mapeamento de HotKeys para transcrever textos. Usando o pynput, fiz uma função para transferir texto bruto e outra para transferir apenas números. Com pynput.keyboard.GlobalHotKeys, mapeei 'ctrl + alt + 1' para o primeiro e 'shift + ctrl + alt + 1' para o segundo. Usando o primeiro atalho, um caractere "¹" é impresso antes da sequência desejada (como o uso normal dessas teclas). Usando a segunda, o primeiro texto, seguido do segundo (apenas dígitos), é impresso repetidamente (quanto mais as teclas são pressionadas, mais vezes o texto é impresso). Ex .: a string '45.785.422/0001-25' pressionando ctrl + alt + 1 gera: ¹45.785.422/0001-25, já shift + ctrl + alt + 1 resulta - 45.785.422/ 0001-25457854220001254578542200012545785422000125457854220001254578542200012545.7822.422,4578542200012545,78 . O código:

    from pynput import keyboard as kbd
    import keyboard
    from pynput.keyboard import Key, Controller
    import re

    txt_base = '45.785.422/0001-25'

    # keyboard = Controller()


    def send_text():
    keyboard.write(txt_base)


    def clean_text():
    txt_array = re.findall(r'\d+', txt_base)
    txt_cln = ''.join(txt_array)
    keyboard.write(txt_cln)


    hotkeys = kbd.GlobalHotKeys({
    '<ctrl>+<alt>+1': send_text(),
    '<ctrl>+<shift>+<alt>+1': clean_text(),
    })

    with hotkeys:
    hotkeys.join()


    Tentei type() em vez de write(), mas o resultado foi o mesmo. Alguém poderia tentar me esclarecer, se possível? Obrigado.

    Continue reading...

Compartilhe esta Página