AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Simulierten Hotkey per WMHotKey abfangen?
Thema durchsuchen
Ansicht
Themen-Optionen

Simulierten Hotkey per WMHotKey abfangen?

Ein Thema von schwa226 · begonnen am 16. Apr 2008 · letzter Beitrag vom 23. Apr 2008
Antwort Antwort
Seite 2 von 2     12   
schwa226

Registriert seit: 4. Apr 2008
400 Beiträge
 
#11

Re: Simulierten Hotkey per WMHotKey abfangen?

  Alt 23. Apr 2008, 15:44
Sinn der Sache ist:

bei meinem HTPC verwende ich Girder um die IR-Fernbedienung für die DVB-Software verwenden zu können.

Girder schickt dann die Signale per Shortcut an die DVB Software. Da die DVB Software aber noch nicht HD-DVD Tauglich ist brauche ich dazu z.B. PowerDVD um HD-DVDs abspielen zu können.

Hier ist nun das Problem, dass einige Tasten in der DVB-Software & PowerDVD gleich sind (z.B Up, Down, Left, Right...)

Ich will nun per Hook den Tastenbefehl abfangen und stattdessen an das Fenster im Vordergrund (hier halt PowerDVD) schicken.
Denn die DVB-Software macht z.B. bei Up/Down einen Kanalwechsel was während einer DVD-Wiedergabe ja sinnlos ist.

Anhang ist mal der komplette Source. Aus der default.remote werden die Shortcuts ausgelesen die abgefangen werden sollen.

Nun verfängt sich die DLL aber in einer Endlosschleife wenn ein Up/Down usw gedrückt wird.
Denn es wird ja das Up von Girder an die DVB-Software abgefangen und dann wird as Up an das Fenster im Vordergrund geschickt.

Ein Löschen der Shortcuts in der HandleHook Array hilft auch nichts...
Angehängte Dateien
Dateityp: zip hookdll_307.zip (347,2 KB, 11x aufgerufen)
  Mit Zitat antworten Zitat
schwa226

Registriert seit: 4. Apr 2008
400 Beiträge
 
#12

Re: Simulierten Hotkey per WMHotKey abfangen?

  Alt 23. Apr 2008, 22:18
Yes!!

Zur Info: Habe nun den SetWindowsHookEx auf die ThreadID der DVB-Software beschränkt! Nun schauts schon besser aus!
Jetzt reagiert der Hook nurmehr auf die Tasten, die zu diesem Handle geschickt werden und das ist ja mein Sinn der Sache!
Leider scheint es aber derzeit das nur einzelne Tasten die von Girder geschickt werden erkannt werden

Kombinationen wie z.B. SHIFT+E wird nicht erkannt. Wenn ich aber auf der Tastatur SHIFT+E drücke werden sie schon erkannt...
Keine Ahnung warum das jetzt bei Girder anders ist...

Jedoch habe ich noch festgestellt, dass manchmal (aber nicht jedesmal) beim keybd_event die Funktion 2 mal ausgeführt wird. Speziell wenn ich ein VK_UP, VKDOWN, VK_RIGHT oder VK_LEFT schicke. Wie kann man das noch vorbeugen?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:49 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz