如何挂钩全局WM_APPCOMMAND消息?

时间:2012-12-30 02:45:53

标签: c# hook message global

我正在写一个简单的音乐播放器。我想要它挂钩全局WM_APPCOMMAND消息(APPCOMMAND_MEDIA_PLAYAPPCOMMAND_MEDIA_PAUSEAPPCOMMAND_MEDIA_NEXTTRACK,...)。
你能帮帮我怎么做吗?非常感谢你!

1 个答案:

答案 0 :(得分:3)

这需要一个由SetWindowsHookEx()设置的WH_SHELL钩子。钩子回调将获得HSHELL_APPCOMMAND notification

这个钩子需要一个可以注入所有正在运行的进程的DLL。你不能用像C#这样的托管语言编写这样的DLL,你尝试注入的进程不会加载CLR。需要非托管代码,C是典型的选择。 This project应该有助于获得这样的DLL。请注意64位操作系统上的相当大的复杂性,您需要两个辅助程序,因此您可以注入32位和64位进程。