QT Keyboard Hook

Alles rund um die Programmierung mit Qt
Antworten
Marc Schubert
Beiträge: 30
Registriert: 18. Mai 2005 10:00
Wohnort: Hannover

QT Keyboard Hook

Beitrag 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
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Und was hat das mit Qt zu tun?
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
webmaster1987
Beiträge: 73
Registriert: 2. September 2006 18:30
Wohnort: Köln
Kontaktdaten:

Beitrag 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 :(
DOUBLE ist wie FLOAT nur in HD
patrik08
Beiträge: 746
Registriert: 27. Februar 2006 10:48
Wohnort: DE Freiburg

Beitrag 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...
.........................
speack português italiano deutsch english castellà qt
Marc Schubert
Beiträge: 30
Registriert: 18. Mai 2005 10:00
Wohnort: Hannover

Beitrag 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
patrik08
Beiträge: 746
Registriert: 27. Februar 2006 10:48
Wohnort: DE Freiburg

Beitrag 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...
.........................
speack português italiano deutsch english castellà qt
webmaster1987
Beiträge: 73
Registriert: 2. September 2006 18:30
Wohnort: Köln
Kontaktdaten:

Beitrag 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?
DOUBLE ist wie FLOAT nur in HD
Marc Schubert
Beiträge: 30
Registriert: 18. Mai 2005 10:00
Wohnort: Hannover

Beitrag 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
Antworten