3

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

4

1 回答 1

4

这需要一个 WH_SHELL 挂钩,由 SetWindowsHookEx() 设置。挂钩回调将获得HSHELL_APPCOMMAND 通知

这个钩子需要一个可以注入到所有正在运行的进程中的 DLL。您不能用 C# 之类的托管语言编写这样的 DLL,您尝试注入的进程不会加载 CLR。需要非托管代码,C 是典型的选择。 这个项目应该有助于让这样的 DLL 运行。请注意 64 位操作系统上相当复杂的问题,您需要两个帮助程序,以便您可以同时注入 32 位和 64 位进程。

于 2012-12-30T09:59:39.543 回答