Вопрос

Возможно ли сделать так, чтобы системе казалось, что была нажата клавиша, например, мне нужно сделать A клавишу нужно нажимать тысячи раз, и делать это вручную отнимает много времени, я хотел бы написать что-нибудь, что сделало бы это за меня, и единственное, что я знаю достаточно хорошо, - это Python.

Проще говоря, мне нужно эмулировать нажатие клавиши, т.е.не фиксирует нажатие клавиши.

Дополнительная информация (по запросу):Я использую Windows XP, и мне нужно отправить ключи в другое приложение.

Это было полезно?

Решение

Установите pywin32 Расширения.Затем вы можете сделать следующее:

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

Найдите документацию по WScript.Объект оболочки (я полагаю, установлен по умолчанию во всех установках Windows XP).Вы можете начинать здесь, возможно.

Редактировать: Отправка F11

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

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

Другие советы

Вы также можете использовать PyAutoGui для отправки виртуальных нажатий клавиш.

Вот документация: https://pyautogui.readthedocs.org/en/latest/

import pyautogui


pyautogui.press('Any key combination')

Вы также можете отправлять клавиши, такие как клавиша shift или enter, с помощью:

import pyautogui

pyautogui.press('shift')

Pyautogui также может отправлять прямой текст следующим образом:

import pyautogui

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

Что касается нажатия клавиши "A" 1000 раз, то это выглядело бы примерно так:

import pyautogui

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

alt-tab или другие задачи, требующие одновременного нажатия нескольких клавиш:

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")

Автоотключение идеально подходит для такого рода задач (автоматизация работы с клавиатурой / переназначение).

Скрипт для отправки "А" 100 раз:

Send {A 100}

Вот и все

Редактировать:чтобы отправить ключи в конкретное приложение:

WinActivate Word
Send {A 100}

Проверьте Этот модуль клавиатура со многими функциями.Установите его, возможно, с помощью этой команды:

pip3 install keyboard

Затем используйте этот код:

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

Если вы хотите написать "A" несколько раз, То просто используйте цикл.
Примечание:
Клавиша "A" будет нажата для всего окна.Означает, что скрипт запущен, и вы зашли в браузер, скрипт начнет писать там.

Если ваша платформа - Windows, я бы на самом деле не рекомендовал Python.Вместо этого загляните в Автоотключение.Поверьте мне, я люблю Python, но в данном случае макропрограмма - идеальный инструмент для этой работы.Сценарии Autohotkey вполне приличны (на мой взгляд), но простота имитации ввода сэкономит вам бесчисленное количество часов.Скрипты Autohotkey также могут быть "скомпилированы", так что вам не нужен интерпретатор для запуска скрипта.

Кроме того, если это для чего-то в Интернете, я рекомендую иМакрос.Это плагин для Firefox и, следовательно, имеет гораздо лучшую интеграцию с веб-сайтами.Например, вы можете сказать "напишите 1000 букв "а" в этой форме" вместо "имитируйте щелчок мышью в (319 400), а затем нажмите "а" 1000 раз".

Для Linux я, к сожалению, не смог найти хороший способ легко создавать макросы клавиатуры / мыши.

Альтернативный способ выставить окно предпочтений на передний план перед отправкой события нажатия клавиши.

hwnd = win32gui.FindWindowEx(0,0,0, "App title")
win32gui.SetForegroundWindow(hwnd)
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top