Pergunta

É possível fazer com que pareça um sistema que uma tecla foi pressionada, por exemplo, eu preciso fazer milhares A tecla ser pressionada de vezes, e é muito para demorado para fazê-lo manualmente, gostaria de escrever algo para fazer isso por mim, e a única coisa que eu sei bem o suficiente é Python.

A melhor maneira de colocá-lo, eu preciso para emular uma tecla, ou seja, não capturar uma tecla.

Mais informações (tal como solicitado): Estou executando o Windows XP e necessidade de enviar as chaves para outra aplicação.

Foi útil?

Solução

Instale os pywin32 extensões. Então você pode fazer o seguinte:

import win32com.client as comclt
wsh= comclt.Dispatch("WScript.Shell")
wsh.AppActivate("Notepad") # select another application
wsh.SendKeys("a") # send the keys you want

Pesquise a documentação do objeto WScript.Shell (creio instalado por padrão em todas as instalações do Windows XP). Você pode começar aqui , talvez.

EDIT: Enviar F11

import win32com.client as comctl
wsh = comctl.Dispatch("WScript.Shell")

# Google Chrome window title
wsh.AppActivate("icanhazip.com")
wsh.SendKeys("{F11}")

Outras dicas

Você também pode usar PyAutoGui para enviar um pressionamento de teclas virtual.

Aqui está a documentação: https://pyautogui.readthedocs.org/en/latest/

import pyautogui


pyautogui.press('Any key combination')

Você também pode enviar chaves como a tecla Shift ou a tecla Enter com:

import pyautogui

pyautogui.press('shift')

Pyautogui também pode enviar mensagens de texto diretamente assim:

import pyautogui

pyautogui.typewrite('any text you want to type')

Como para pressionar a tecla 1000 vezes "A", seria algo parecido com isto:

import pyautogui

for i in range(999):
    pyautogui.press("a")

Alt-Tab ou outras tarefas que requerem mais de uma tecla a ser pressionada ao mesmo tempo:

import pyautogui

# Holds down the alt key
pyautogui.keyDown("alt")

# Presses the tab key once
pyautogui.press("tab")

# Lets go of the alt key
pyautogui.keyUp("alt")

AutoHotKey é perfeito para este tipo de tarefas (automação teclado / remapeamento)

Script para enviar 100 vezes "A":

Send {A 100}

Isso é tudo

Editar : para enviar as chaves para uma aplicação específica:

WinActivate Word
Send {A 100}

Verifique Este módulo Teclado com muitos features.Install-lo, talvez com este comando:

pip3 install keyboard

Em seguida, usar este código:

import keyboard
keyboard.write('A',delay=0)

Se você quiser escrever várias vezes 'A', então simplesmente use um loop.
Nota :
A chave 'A' será pressionado para todo o windows.Means o script está em execução e que você foi para o navegador, o script irá começar a escrever lá.

Se você é plataforma é o Windows, eu não iria realmente recomendo Python. Em vez disso, olhar para Autohotkey . Confie em mim, eu adoro Python, mas nesta circunstância um programa macro é a ferramenta ideal para o trabalho. scripting do Autohotkey só é decente (na minha opinião), mas a facilidade de entrada simulando você vai economizar incontáveis ??horas. Autohotkey scripts podem ser "compilado", bem assim você não precisa de intérprete para executar o script.

Além disso, se isto é para algo na web, eu recomendo iMacros . É um plugin firefox e, portanto, tem uma melhor integração muito com websites. Por exemplo, você pode dizer "escrita 1000 'A na presente forma" em vez de 'simular um clique de mouse em (319.400) e depois pressione 'a' 1000 vezes'.

Para Linux, eu infelizmente não tenho sido capaz de encontrar uma boa maneira de criar facilmente teclado macros / mouse.

forma alternativa ao conjunto preferem janela em primeiro plano, antes tecla enviar imprensa evento.

hwnd = win32gui.FindWindowEx(0,0,0, "App title")
win32gui.SetForegroundWindow(hwnd)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top