AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Multimedia-Tasten Hook funktioniert PRINZIPIELL nicht
Thema durchsuchen
Ansicht
Themen-Optionen

Multimedia-Tasten Hook funktioniert PRINZIPIELL nicht

Ein Thema von 64Jabor · begonnen am 3. Jun 2008 · letzter Beitrag vom 5. Jul 2008
Antwort Antwort
64Jabor

Registriert seit: 9. Jan 2008
158 Beiträge
 
Delphi 7 Personal
 
#1

Multimedia-Tasten Hook funktioniert PRINZIPIELL nicht

  Alt 3. Jun 2008, 12:06
Hallo DP,

leider scheitere ich immer wieder daran die Sondertasten für Multimedia zu hooken!
Bei allen anderen Tasten funktioniert mein DLL-Hook global und einwandfrei per virtuellen Tastencodes.
Bei den Multimedia-Tasten habe ich auf Konstanten aus der DP gesetzt:

Delphi-Quellcode:
const
   APPCOMMAND_MEDIA_NEXTTRACK = $B0000;
   APPCOMMAND_MEDIA_PREVIOUSTRACK = $C0000;
   APPCOMMAND_MEDIA_STOP = $D0000;
   APPCOMMAND_MEDIA_PLAY_PAUSE = $E0000;
   APPCOMMAND_VOLUME_MUTE = $80000;
   APPCOMMAND_VOLUME_DOWN = $90000;
   APPCOMMAND_VOLUME_UP = $a0000;
Nur leider kommt anscheinend nicht bei meinem Hook an.
Ein mir bekanntes Problem ist, dass der Tastendruck mehrmal ankommt - dank iTouch etc, aber GAR NICHT?

Meine HookProc:

Delphi-Quellcode:
Result := CallNextHookEx(HookHandle, nCode, wParam, lParam);
KeyUp := ((lParam and (1 shl 31)) <> 0);
  case nCode < 0 of
    TRUE: exit;
    FALSE:
      begin
       if not KeyUp then
        begin
         case wParam of
          APPCOMMAND_MEDIA_NEXTTRACK: MessageBox(WindowHandle, 'Ret', 'Info', MB_OK);
         end;
        end;
      end;
  end;
WindowHandle ist hier das übergebende Fenster-Handle...

Sieht jemand das Problem?

Schonmal danke,
mfg 64Jabor
Sebastian
Unsren Clan im volle Lauf, hält weder Ochs noch Esl auf ^^
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#2

Re: Multimedia-Tasten Hook funktioniert PRINZIPIELL nicht

  Alt 22. Jun 2008, 09:36
Hallo, konntest du das Problem schon lösen?
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
877 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Multimedia-Tasten Hook funktioniert PRINZIPIELL nicht

  Alt 22. Jun 2008, 11:15
Für die Multimediatasten braucht man keinen Key-Hook, sondern einen Shell-Hook (WH_SHELL).
The angels have the phone box.
  Mit Zitat antworten Zitat
1234588

Registriert seit: 14. Jan 2007
Ort: Stuttgart
164 Beiträge
 
#4

Re: Multimedia-Tasten Hook funktioniert PRINZIPIELL nicht

  Alt 22. Jun 2008, 11:43
wird die APPCOMMAND_MEDIA_NEXTTRACK message nicht ueber die WM_APPCOMMAND message uebertragen?

Delphi-Quellcode:
if uMsg = WM_APPCOMMAND then
  case wParam of
    APPCOMMAND_MEDIA_NEXTTRACK:;
    APPCOMMAND_MEDIA_PREVIOUSTRACK:;
    APPCOMMAND_MEDIA_STOP:;
    //usw.
  end;
  Mit Zitat antworten Zitat
Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
877 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Multimedia-Tasten Hook funktioniert PRINZIPIELL nicht

  Alt 22. Jun 2008, 11:59
Jupp, und genau deswegen bringt ein Keyboard-Hook hier auch nichts, sondern nur der Shellhook.
The angels have the phone box.
  Mit Zitat antworten Zitat
64Jabor

Registriert seit: 9. Jan 2008
158 Beiträge
 
Delphi 7 Personal
 
#6

Re: Multimedia-Tasten Hook funktioniert PRINZIPIELL nicht

  Alt 22. Jun 2008, 13:29
Achso, ok, was genau ist der Unterschied?
Der KeyHook fängt Tastendrücke ab, der Shell Systemnachrichten oder wie?
Sebastian
Unsren Clan im volle Lauf, hält weder Ochs noch Esl auf ^^
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#7

Re: Multimedia-Tasten Hook funktioniert PRINZIPIELL nicht

  Alt 22. Jun 2008, 22:05
Hallo

In der msdn findest du Infos zu den Hook Typen.

Bemerkungen zu WM_APPCOMMAND Notification

Zitat:
If a child window does not process this message and instead calls DefWindowProc, DefWindowProc will send the message to its parent window. If a top level window does not process this message and instead calls DefWindowProc, DefWindowProc will call a shell hook with the hook code equal to HSHELL_APPCOMMAND.
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Multimedia-Tasten Hook funktioniert PRINZIPIELL nicht

  Alt 5. Jul 2008, 16:18
Hallo, gibt es inzwischen eine Lösung, wie man die Multimedia-Tasten abfangen kann?
Habe nämlich genau das selbe Problem, siehe dieser Thread.
Wie funktioniert das denn mit dem Hook HSHELL_APPCOMMAND ???
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
Antwort Antwort


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 10:19 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