Seite 1 von 1
QT Keyboard Hook
Verfasst: 6. Mai 2007 12:11
von Marc Schubert
Hallo Zusammen,
ich versuche schon seid zwei wochen verzweifelt einen keyboard hook zu setzen. Ich habe eine Applikation die im Systray sitzt und auf F12 sich öffnen soll.
Ich habe nun eine Hook.dll erstellt und bekomme diese auch gelinkt aber wenn ich installhook aufrufe kann der hook nicht gesetzt werden.
Hat jemand für mich ein funktionierendes beispiel.
Ich nutze QT 4.2.3 OpenSource mit MinGW
Danke.
Gruß
Marc
Verfasst: 6. Mai 2007 13:04
von Christian81
Und was hat das mit Qt zu tun?
Verfasst: 6. Mai 2007 14:49
von webmaster1987
Hallo,
ich hab zwar keine Lösung für dein Problem, aber es wäre nett wenn du mal einen code für diesen Key Hook posten könntest, ich habe nämlich auch einmal versucht sowas zu programmieren bin aber gescheitert. Im Forum wurde das Thema auch schön öfters angesprochen, nur gabs nie eine Lösung

Verfasst: 6. Mai 2007 19:56
von patrik08
subclass von QSystemTrayIcon
und dann schreibe einen QShortcut hinein
shortcut1 = new QShortcut(QKeySequence("F10"),this);
connect(shortcut1, SIGNAL(activated()),this, SLOT(deinsignalzumemit()));
was den ein emit signal ausloest...
den source von
http://sourceforge.net/projects/qt-webdav/ hat auch ein QSystemTrayIcon als beispiel....
QShortcut lauft gut wenn es in der richtige class drinn ist...
Verfasst: 6. Mai 2007 21:26
von Marc Schubert
@webmaster1987
ich habe es nach dieser anleitung probiert
http://www.qtforum.org/article/17914/ca ... esses.html
gelöst habe ich es hiermit
http://www.qtcentre.org/forum/f-qt-prog ... =qshortcut
durch registrieren und auswerten mit winevent
QShortcut werde ich auch nochmal probieren ... ich denke das dies den gleichen effekt wie RegisterHotKey der windows api liefert
Vielen dank an alle für eure mühe
Gruß
Marc
Verfasst: 7. Mai 2007 08:19
von patrik08
Marc Schubert hat geschrieben:@webmaster1987
QShortcut werde ich auch nochmal probieren ... ich denke das dies den gleichen effekt wie RegisterHotKey der windows api liefert
Marc
Der einzige unterschied ist sicher das QShortcut auf alle os geht.. Aber wenn es nur auf ein os laufen muss ist ja gut...
Verfasst: 7. Mai 2007 17:02
von webmaster1987
@patrik08
Ich habe mal eine subclass von QSystemTrayIcon erarbeitet nur kann ich deiner beschreibung nicht folgen da:
shortcut1 = new QShortcut(QKeySequence("F10"),this); das this ist ein kein QObject was er gebrauchen kann
kannst du da irgendwie weiterhelfen?
Verfasst: 7. Mai 2007 19:35
von Marc Schubert
ich habe nun auch gelesen(,aber noch nicht geprüft), das QShortcut keinen Systemweiten hook setzt. Was ja bedeuten würde das das Programm wenn es in den Tray minimiert ist auf keine Shortcuts reagieren würde. ( da es jetzt ja keinen Focus mehr haben muss)
Aber das ist genau das was ich möchte.
In meinem Fall brauche ich ja wirklich nur ne lösung für windows, aber wenn es mit QShortcut auch gehen sollte, würde ich es vorziehen.
Gruß
Marc