1

我有一个Acer Aspire 5740G,我想拦截硬件按钮。我使用SetWindowsHookEx().

对于音量按钮,例如,我接收VolumeUpVolumeDown消息,一切都很好。但是对于wifi按钮蓝牙按钮,我只收到LBUTTONOEMCLEAR(KeyCode 255)。那么我该如何区分这两者呢?

我还读到,这个按钮可能无法访问,因为它们会被视为操作系统下方的Fn 键。但是有一个名为Launch Manager的 Acer 软件,它可以显示 OSD 消息并显示蓝牙/wifi 标志。所以必须有可能(至少在理论上)在操作系统级别区分这些按钮。

那么,如何钩住这些键呢?

4

1 回答 1

2

这是一个相关的问题

不知道你是否写过 Windows 驱动程序。

Windows 驱动程序,嗯,历史悠久。

现代 Windows 有两种设备驱动程序模式:

由于您发现这两个按钮具有相同的窗口消息,因此它可能由内核模式驱动程序控制。

一些硬件信号可能没有WM_消息定义,有时它们只是映射到一个相同的 Windows 消息,但内核模式驱动程序可以区分它们。有很多,例如,Kebla bla 和IRP_bla bla 的东西;有些甚至只能用 C/C++ 编写,即原生代码;除了查看驱动程序之外,您可能没有其他办法。

如果你真的对 Windows 驱动感兴趣,可以看看Windows Driver Development,WDK(Windows Driver Kit)是免费下载的。

Finally, if you STRONGLY want the technical support from the manufacturer(Acer), leave a comment to let me know if we shall get in contact and I'll reply with my email.

于 2013-02-24T10:25:28.183 回答