Форум сайта python.su
Допустим, я хочу, чтобы раз в какое-то время программа нажимала на enter. Как это можно реализовать само нажатие?
Офлайн
Ваша программа или чужая?
Офлайн
FishHookДа я просто хочу написать скриптик, который будет нажимать ентер, стрелочку вверх и снова ентер. Чтобы сообщение в чат в игре отправлялось.
Ваша программа или чужая?
Офлайн
Straik32423Делал я примерно такое. Нужно инсталлировать модуль pyautogui. Вот как программа на Питоне печатает в окне текстового редактора (TextEdit в Mac OS X или Notepad в Windows):
Да я просто хочу написать скриптик, который будет нажимать ентер, стрелочку вверх и снова ентер. Чтобы сообщение в чат в игре отправлялось.
import pyautogui # Окно текстового редактора уже открыто и находится в левом верхнем углу экрана # Программно щелкаем в окне редактора мышью и выводим в него текст pyautogui.click (100, 100); pyautogui.typewrite ('Hello world!')
pyautogui.typewrite(['enter', 'up', 'down'])
Отредактировано old_monty (Фев. 4, 2017 16:01:12)
Офлайн
old_montyСпасибо, только в этой игре почему-то не работает. С чем может быть связано? Там вообще никакие клавиши не нажимаются.
Офлайн
Straik32423Это может быть связано с тем, что вывод должен попасть в текстовое поле окна программы. У меня вывод попадает в окно редактора, потому что предварительно делается программный щелчок в заведомо известную область текстового ввода. Вывод с координатами примера (100, 100) уйдет в то окно, которое в данный момент есть в этом месте. Я попробовал так сделать, закрыл редактор, на этом месте оказалась вкладка (неактивная) браузера. Она стала активной (открылась), но конечно, никакой текст нигде не появился (вкладка это же не текстовое поле). Так что вам надо либо менять координаты щелчка, либо подвести окно чата (точнее говоря, его текстовое поле ввода) к месту программного щелчка.
Отредактировано old_monty (Фев. 4, 2017 17:31:18)
Офлайн
old_montyТам по нажатию enter открывается чат, так что я вообще не пытался никуда попасть.
Офлайн
Так когда программа нажимает кнопки (особенно Enter), это же ввод в некоторое текстовое поле, нет? Текстовое поле, в котором делается ввод, должно быть в том месте экрана, где делается программный щелчок мыши.
Офлайн
old_montyЩелчок вообще нигде не делается. При нажатии Enter открывается чат, в который уже можно писать. Программа нажимает стрелку вверх и в чате появляется предыдущее отправленное сообщение. Потом она опять нажимает на Enter, тем самым отправляет его. Кликать в чат не нужно.
Так когда программа нажимает кнопки (особенно Enter), это же ввод в некоторое текстовое поле, нет? Текстовое поле, в котором делается ввод, должно быть в том месте экрана, где делается программный щелчок мыши.
Офлайн
Straik32423А как нажимается Enter? Из программы на питоне получается нажать?
При нажатии Enter открывается чат, в который уже можно писать.
Офлайн