Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 4, 2017 12:12:49

Straik32423
От: Ростов-на-Дону, Россия
Зарегистрирован: 2016-05-18
Сообщения: 46
Репутация: +  0  -
Профиль   Отправить e-mail  

Как имитировать нажатие клавиш?

Допустим, я хочу, чтобы раз в какое-то время программа нажимала на enter. Как это можно реализовать само нажатие?

Офлайн

#2 Фев. 4, 2017 12:23:16

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Как имитировать нажатие клавиш?

Ваша программа или чужая?



Офлайн

#3 Фев. 4, 2017 14:58:02

Straik32423
От: Ростов-на-Дону, Россия
Зарегистрирован: 2016-05-18
Сообщения: 46
Репутация: +  0  -
Профиль   Отправить e-mail  

Как имитировать нажатие клавиш?

FishHook
Ваша программа или чужая?
Да я просто хочу написать скриптик, который будет нажимать ентер, стрелочку вверх и снова ентер. Чтобы сообщение в чат в игре отправлялось.

Офлайн

#4 Фев. 4, 2017 15:47:58

old_monty
Зарегистрирован: 2015-09-27
Сообщения: 238
Репутация: +  20  -
Профиль   Отправить e-mail  

Как имитировать нажатие клавиш?

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'])

Отредактировано old_monty (Фев. 4, 2017 16:01:12)

Офлайн

#5 Фев. 4, 2017 16:43:59

Straik32423
От: Ростов-на-Дону, Россия
Зарегистрирован: 2016-05-18
Сообщения: 46
Репутация: +  0  -
Профиль   Отправить e-mail  

Как имитировать нажатие клавиш?

old_monty
Спасибо, только в этой игре почему-то не работает. С чем может быть связано? Там вообще никакие клавиши не нажимаются.

Офлайн

#6 Фев. 4, 2017 17:12:18

old_monty
Зарегистрирован: 2015-09-27
Сообщения: 238
Репутация: +  20  -
Профиль   Отправить e-mail  

Как имитировать нажатие клавиш?

Straik32423
Это может быть связано с тем, что вывод должен попасть в текстовое поле окна программы. У меня вывод попадает в окно редактора, потому что предварительно делается программный щелчок в заведомо известную область текстового ввода. Вывод с координатами примера (100, 100) уйдет в то окно, которое в данный момент есть в этом месте. Я попробовал так сделать, закрыл редактор, на этом месте оказалась вкладка (неактивная) браузера. Она стала активной (открылась), но конечно, никакой текст нигде не появился (вкладка это же не текстовое поле). Так что вам надо либо менять координаты щелчка, либо подвести окно чата (точнее говоря, его текстовое поле ввода) к месту программного щелчка.

Отредактировано old_monty (Фев. 4, 2017 17:31:18)

Офлайн

#7 Фев. 4, 2017 17:57:57

Straik32423
От: Ростов-на-Дону, Россия
Зарегистрирован: 2016-05-18
Сообщения: 46
Репутация: +  0  -
Профиль   Отправить e-mail  

Как имитировать нажатие клавиш?

old_monty
Там по нажатию enter открывается чат, так что я вообще не пытался никуда попасть.
Я просто запускаю программу в игре, и, спустя пять секунд, (чтобы я успел сделать окно игры снова активным) программа нажимает нужные мне кнопки. Между каждым нажатием я тоже сделал задержу. Но ничего не изменилось.

Офлайн

#8 Фев. 4, 2017 18:11:38

old_monty
Зарегистрирован: 2015-09-27
Сообщения: 238
Репутация: +  20  -
Профиль   Отправить e-mail  

Как имитировать нажатие клавиш?

Так когда программа нажимает кнопки (особенно Enter), это же ввод в некоторое текстовое поле, нет? Текстовое поле, в котором делается ввод, должно быть в том месте экрана, где делается программный щелчок мыши.

Офлайн

#9 Фев. 4, 2017 18:15:23

Straik32423
От: Ростов-на-Дону, Россия
Зарегистрирован: 2016-05-18
Сообщения: 46
Репутация: +  0  -
Профиль   Отправить e-mail  

Как имитировать нажатие клавиш?

old_monty
Так когда программа нажимает кнопки (особенно Enter), это же ввод в некоторое текстовое поле, нет? Текстовое поле, в котором делается ввод, должно быть в том месте экрана, где делается программный щелчок мыши.
Щелчок вообще нигде не делается. При нажатии Enter открывается чат, в который уже можно писать. Программа нажимает стрелку вверх и в чате появляется предыдущее отправленное сообщение. Потом она опять нажимает на Enter, тем самым отправляет его. Кликать в чат не нужно.

Офлайн

#10 Фев. 4, 2017 18:21:53

old_monty
Зарегистрирован: 2015-09-27
Сообщения: 238
Репутация: +  20  -
Профиль   Отправить e-mail  

Как имитировать нажатие клавиш?

Straik32423
При нажатии Enter открывается чат, в который уже можно писать.
А как нажимается Enter? Из программы на питоне получается нажать?

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version