Найти - Пользователи
Полная версия: Имитация нажатия клавиш
Начало » Python для новичков » Имитация нажатия клавиш
1 2 3
n1ce
а вот сейчас попробывал по русски написать hello world и он сделал. может надо раскладку букв переключить?
oddghost
а в линукс?
gmorgunov
В 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_()
Doberman26rus
А куда отсылает? на форму с программой? а если надо сделать чтобы печать велась в адресную строку браузера, например?
gmorgunov
Можно и в адресную строку, например так:
#!/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_()
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). Есть исходники(С++), можно посмотреть.
Doberman26rus
Ну вобще QLineEdit не очень похоже на адрессную строку в браузере))) Я так понял после вбития адресса, должен был запуститься браузер с введенной строкой? У меня не сработало. И как то это всё через одно место получается, неужели нельязя, просто поставить курсор в адресное поле браузера, после чего программа сама туда вобъёт текст, ну или напечатает в редакторе стишок)))
Doberman26rus
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). Есть исходники(С++), можно посмотреть.
Спасибо, посмотрю, но вопрос по прежнему актуален, может кто знает
sp3
igor.kaist
“шеф, все пропало”… симуляция кнопок не работает в играх… гугл говорил про DirectInput в винде…
сори что некропостирую, но решение эмуляции в играх нагуглилось неожиданно
win32api.keybd_event(VirtualKey,scancode, status, 0)
scancode не должен быть 0, а должен быть код реальной кнопки
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