Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 13, 2009 19:16:54

n1ce
От:
Зарегистрирован: 2009-04-09
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

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

а вот сейчас попробывал по русски написать hello world и он сделал. может надо раскладку букв переключить?



Офлайн

#2 Май 4, 2009 21:10:21

oddghost
От:
Зарегистрирован: 2009-05-02
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

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

а в линукс?



Офлайн

#3 Май 5, 2009 13:43:00

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

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

В Linux(Suse) и PyQt4 имитация нажатия клавиш <a> и <1> :

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
from PyQt4.QtGui import *
from PyQt4.QtCore import *

if __name__=='__main__':
app = QApplication(sys.argv)
text=QLineEdit(u'Вы нажали: ')
text.show()

# Qt.Key_A - событие нажатия клавиши <a>
# Qt.key_1 - событие нажатия клавиши <1>

# созд. событие нажатие клавиши <a> и отсылаем это событие
pressed_a = QKeyEvent(QEvent.KeyPress, Qt.Key_A, Qt.NoModifier, "a")
QApplication.sendEvent(text, pressed_a)

# то же самое с <1>
pressed_1 = QKeyEvent(QEvent.KeyPress, Qt.Key_1, Qt.NoModifier, "1")
QApplication.sendEvent(text, pressed_1)

app.exec_()



Офлайн

#4 Май 5, 2009 15:43:16

Doberman26rus
От: Ставрополь
Зарегистрирован: 2009-03-16
Сообщения: 128
Репутация: +  1  -
Профиль   Отправить e-mail  

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

А куда отсылает? на форму с программой? а если надо сделать чтобы печать велась в адресную строку браузера, например?



подпись

Офлайн

#5 Май 5, 2009 19:16:33

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

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

Можно и в адресную строку, например так:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
from PyQt4.QtGui import *
from PyQt4.QtCore import *
from PyQt4.QtNetwork import *

if __name__=='__main__':
app = QApplication(sys.argv)
adress=QLineEdit('www.yandex.')
adress.show()
pressed_r = QKeyEvent(QEvent.KeyPress, Qt.Key_R, Qt.NoModifier, "r")
QApplication.sendEvent(adress, pressed_r)
pressed_u = QKeyEvent(QEvent.KeyPress, Qt.Key_U, Qt.NoModifier, "u")
QApplication.sendEvent(adress, pressed_u)

file=QFile('yandex.html')
if file.open(QIODevice.WriteOnly):
http=QHttp()
http.setHost(adress.text())
http.get('/',file)
http.close()
file.close()
app.exec_()



Офлайн

#6 Май 6, 2009 10:39:00

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

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

Doberman26rus. Вот тут: www.kde-apps.org/content/show.php/Kvkbd?content=56019 - 80k - есть виртуальная клавиатура для KDE-3.5, программа Kvkbd. Но она на C++. У меня (openSuse10.3) все собралось,работает ( ./configure; su … ; make; make install). Есть исходники(С++), можно посмотреть.



Офлайн

#7 Май 6, 2009 16:36:28

Doberman26rus
От: Ставрополь
Зарегистрирован: 2009-03-16
Сообщения: 128
Репутация: +  1  -
Профиль   Отправить e-mail  

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

Ну вобще QLineEdit не очень похоже на адрессную строку в браузере))) Я так понял после вбития адресса, должен был запуститься браузер с введенной строкой? У меня не сработало. И как то это всё через одно место получается, неужели нельязя, просто поставить курсор в адресное поле браузера, после чего программа сама туда вобъёт текст, ну или напечатает в редакторе стишок)))



подпись

Офлайн

#8 Май 6, 2009 16:42:18

Doberman26rus
От: Ставрополь
Зарегистрирован: 2009-03-16
Сообщения: 128
Репутация: +  1  -
Профиль   Отправить e-mail  

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

gmorgunov
Doberman26rus. Вот тут: www.kde-apps.org/content/show.php/Kvkbd?content=56019 - 80k - есть виртуальная клавиатура для KDE-3.5, программа Kvkbd. Но она на C++. У меня (openSuse10.3) все собралось,работает ( ./configure; su … ; make; make install). Есть исходники(С++), можно посмотреть.
Спасибо, посмотрю, но вопрос по прежнему актуален, может кто знает



подпись

Офлайн

#9 Дек. 7, 2011 11:40:34

sp3
От:
Зарегистрирован: 2010-01-12
Сообщения: 405
Репутация: +  18  -
Профиль   Отправить e-mail  

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

igor.kaist
“шеф, все пропало”… симуляция кнопок не работает в играх… гугл говорил про DirectInput в винде…
сори что некропостирую, но решение эмуляции в играх нагуглилось неожиданно
win32api.keybd_event(VirtualKey,scancode, status, 0)
scancode не должен быть 0, а должен быть код реальной кнопки



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version