Найти - Пользователи
Полная версия: Как имитировать нажатие клавиш?
Начало » Центр помощи » Как имитировать нажатие клавиш?
1 2
Straik32423
Допустим, я хочу, чтобы раз в какое-то время программа нажимала на enter. Как это можно реализовать само нажатие?
FishHook
Ваша программа или чужая?
Straik32423
FishHook
Ваша программа или чужая?
Да я просто хочу написать скриптик, который будет нажимать ентер, стрелочку вверх и снова ентер. Чтобы сообщение в чат в игре отправлялось.
old_monty
Straik32423
Да я просто хочу написать скриптик, который будет нажимать ентер, стрелочку вверх и снова ентер. Чтобы сообщение в чат в игре отправлялось.
Делал я примерно такое. Нужно инсталлировать модуль pyautogui. Вот как программа на Питоне печатает в окне текстового редактора (TextEdit в Mac OS X или Notepad в Windows):
 import pyautogui
  
# Окно текстового редактора уже открыто и находится в левом верхнем углу экрана
# Программно щелкаем в окне редактора мышью и выводим в него текст 
pyautogui.click (100, 100); pyautogui.typewrite ('Hello world!')
Клавиши Enter, стрелка вверх, стрелка вниз обозначаются просто строками ‘enter’, ‘up’, ‘down’. То есть, у вас будет
 pyautogui.typewrite(['enter', 'up', 'down'])
Straik32423
old_monty
Спасибо, только в этой игре почему-то не работает. С чем может быть связано? Там вообще никакие клавиши не нажимаются.
old_monty
Straik32423
Это может быть связано с тем, что вывод должен попасть в текстовое поле окна программы. У меня вывод попадает в окно редактора, потому что предварительно делается программный щелчок в заведомо известную область текстового ввода. Вывод с координатами примера (100, 100) уйдет в то окно, которое в данный момент есть в этом месте. Я попробовал так сделать, закрыл редактор, на этом месте оказалась вкладка (неактивная) браузера. Она стала активной (открылась), но конечно, никакой текст нигде не появился (вкладка это же не текстовое поле). Так что вам надо либо менять координаты щелчка, либо подвести окно чата (точнее говоря, его текстовое поле ввода) к месту программного щелчка.
Straik32423
old_monty
Там по нажатию enter открывается чат, так что я вообще не пытался никуда попасть.
Я просто запускаю программу в игре, и, спустя пять секунд, (чтобы я успел сделать окно игры снова активным) программа нажимает нужные мне кнопки. Между каждым нажатием я тоже сделал задержу. Но ничего не изменилось.
old_monty
Так когда программа нажимает кнопки (особенно Enter), это же ввод в некоторое текстовое поле, нет? Текстовое поле, в котором делается ввод, должно быть в том месте экрана, где делается программный щелчок мыши.
Straik32423
old_monty
Так когда программа нажимает кнопки (особенно Enter), это же ввод в некоторое текстовое поле, нет? Текстовое поле, в котором делается ввод, должно быть в том месте экрана, где делается программный щелчок мыши.
Щелчок вообще нигде не делается. При нажатии Enter открывается чат, в который уже можно писать. Программа нажимает стрелку вверх и в чате появляется предыдущее отправленное сообщение. Потом она опять нажимает на Enter, тем самым отправляет его. Кликать в чат не нужно.
old_monty
Straik32423
При нажатии Enter открывается чат, в который уже можно писать.
А как нажимается Enter? Из программы на питоне получается нажать?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB