judge
18th March 2005, 02:06
Hi,
I'm trying to write an app that controls mp3 players by simulating the action of the media keyboards. Why? Well I want to be able to control a range of mp3 players with the one widget.
Anyhow, on the face of it I should be able to do this by posting a WM_APPCOMMAND message and windows will ensure that if the current window doesn't handle it it will be dispatched via the WH_SHELL hook to non-active windows.
Trouble is it doesn't work. For starters posting a WM_APPCOMMAND message controls WMP if it is not the active window, but it doesn't control Winamp. For seconds if I write an app that hooks WM_SHELL, it doesn't even respond to an actual real mdeia keyboard if the window is not active - never mind my WM_APPCOMMAND messages.
So to cut a long story short I was wondering if anyone can tell me how Winamp hooks a media keyboard when it is non-active. I know how to configure Winamp to do it - what I really want to know is the actual code it uses to do the hooking.
Thanks - Paul
I'm trying to write an app that controls mp3 players by simulating the action of the media keyboards. Why? Well I want to be able to control a range of mp3 players with the one widget.
Anyhow, on the face of it I should be able to do this by posting a WM_APPCOMMAND message and windows will ensure that if the current window doesn't handle it it will be dispatched via the WH_SHELL hook to non-active windows.
Trouble is it doesn't work. For starters posting a WM_APPCOMMAND message controls WMP if it is not the active window, but it doesn't control Winamp. For seconds if I write an app that hooks WM_SHELL, it doesn't even respond to an actual real mdeia keyboard if the window is not active - never mind my WM_APPCOMMAND messages.
So to cut a long story short I was wondering if anyone can tell me how Winamp hooks a media keyboard when it is non-active. I know how to configure Winamp to do it - what I really want to know is the actual code it uses to do the hooking.
Thanks - Paul