Уведомления

Группа в Telegram: @pythonsu

#1 Март 23, 2009 17:41:26

wonderfulll
От:
Зарегистрирован: 2009-01-30
Сообщения: 72
Репутация: +  0  -
Профиль   Отправить e-mail  

Имитация нажатия клавиш

Может кто подскажет как реализовать имитацию нажатия клавиш? Куда вообще копать?



Офлайн

#2 Март 23, 2009 17:47:54

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

Имитация нажатия клавиш

windows?! В модуль win32api, а именно функция keybd_event



Офлайн

#3 Март 23, 2009 18:39:13

wonderfulll
От:
Зарегистрирован: 2009-01-30
Сообщения: 72
Репутация: +  0  -
Профиль   Отправить e-mail  

Имитация нажатия клавиш

Большое спасибо! То что нужно!

Если кому надо вот небольшой пример как работает. Программа каждые 5 сек нажимает КАПСЛОК.

import win32api
import win32con
import time

while True:
print "Caps Locking...", time.asctime()
win32api.keybd_event(win32con.VK_CAPITAL, 0, 0, 0)
win32api.keybd_event(win32con.VK_CAPITAL, 0, win32con.KEYEVENTF_KEYUP, 0)
time.sleep(1 * 5)



Офлайн

#4 Март 23, 2009 19:17:51

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

Имитация нажатия клавиш

wonderfulll, если разберешься, как эмулировать сочетания типа ctrl+alt+down, сообщи пожалуйста :)



Офлайн

#5 Март 23, 2009 21:03:33

wonderfulll
От:
Зарегистрирован: 2009-01-30
Сообщения: 72
Репутация: +  0  -
Профиль   Отправить e-mail  

Имитация нажатия клавиш

какой keystroke у АЛТ? и у обычных букв?

просто ставишь подряд кнопки которые нужны

	win32api.keybd_event(win32con.VK_LCONTROL, 0, 0, 0)
win32api.keybd_event(win32con.VK_ESCAPE, 0, 0, 0)
Alt = VK_LMENU



Отредактировано (Март 23, 2009 21:20:55)

Офлайн

#6 Март 24, 2009 01:26:15

sypper-pit
От: Ulan-Ude(msk)
Зарегистрирован: 2009-01-30
Сообщения: 1102
Репутация: +  6  -
Профиль   Отправить e-mail  

Имитация нажатия клавиш

Офлайн

#7 Март 24, 2009 07:55:35

hellslade
От:
Зарегистрирован: 2008-01-28
Сообщения: 240
Репутация: +  0  -
Профиль   Отправить e-mail  

Имитация нажатия клавиш

sypper-pit
Хм..скачал этот модуль поиграться. Запускаю пример из документации

import SendKeys
SendKeys.SendKeys("""
{LWIN}
{PAUSE .25}
r
Notepad.exe{ENTER}
{PAUSE 1}
Hello{SPACE}World!
{PAUSE 1}
%{F4}
n
""")
Как я понимаю, должно открыться окно Пуск – Выполнить, там написаться notepad.exe, а уже в блокноте “Hello World”.
Вместо этого открывается Пуск ({LWIN}), дальше в нем происходит нажатие клавиш “rNotepad.exe” и на клавишу “о” открывается Opera :)
на %{F4} появляется окно завершение работы. Хорошо хоть после этого Enter не нажимается… :D
Кто-нибудь знает, где я ступил, почему работает неправильно? :)



Офлайн

#8 Март 24, 2009 14:43:03

kostyasa
От:
Зарегистрирован: 2008-12-15
Сообщения: 18
Репутация: +  0  -
Профиль   Отправить e-mail  

Имитация нажатия клавиш

hellslade
Кто-нибудь знает, где я ступил, почему работает неправильно?
наверно виндоуз русская, там слова ‘run’ нет, а есть ‘выполнить’



Офлайн

#9 Апрель 1, 2009 11:01:22

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

Имитация нажатия клавиш

up
Кто подскажет, как симулировать именно нажатие клавиши, т.е. нажал программно “влево” например, через пару секунд отпустил.
P.S. Для будущих вопросов, а так же для индексации гуглом :)
python симуляция событий мыши

import win32api
win32api.mouse_event(2,0,0) # нажали левую кнопку мыши
win32api.mouse_event(1,100,-50) # переместили курсор вправо на 100 и вверх на 50
win32api.mouse_event(4,0,0) # отжали левую кнопку мыши



Офлайн

#10 Апрель 1, 2009 20:05:23

Jython
От:
Зарегистрирован: 2009-03-25
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

Имитация нажатия клавиш

wonderfulll
Может кто подскажет как реализовать имитацию нажатия клавиш? Куда вообще копать?
А дополнение слов с помощью кнопки tab подойдёт?



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version