阅读:2884回复:3
用SendInput来模拟HID Class设备消息
用SendInput模拟键盘、鼠标的动作都没有问题,但我现在想用它来产生WM_APPCOMMAND消息。WM_APPCOMMAND消息通常是HID CLASS类Usage Page(0x0c)产生的,象WINDOWS MEDIA PLAYER中VOL+,VOL-,PLAY、PAUSE、STOP命令都是由它执行的结果。看了SendInput的MSDN说明,它不仅模拟键盘、鼠标动作,也能做其它INPUT硬件消息,但不知为何,我试了一下,用SPY++都不能得到其消息,但如果用我自己做的HID CLASS类设备却能抓到。
模拟函数如下: VOID OnCreateAppCommandMessage(VOID) { INPUT appCommand[1]; appCommand[0].type = INPUT_HARDWARE; appCommand[0].hi.uMsg = WM_APPCOMMAND; appCommand[0].hi.wParaL = 0x0000; appCommand[0].hi.wParaH = APPCOMMAND_VOLUME_MUTE; SendInput(1, appCommand, sizeof(INPUT)); } 不知是否有大侠能指点。 |
|
|
沙发#
发布于:2005-02-28 12:59
谢谢bmyyyud和zhangshengyu二位大侠关注,SendInput不行,只好用SenndMessage来做了。
|
|
|
板凳#
发布于:2005-02-28 10:08
SendMessage SendInput就是调用SendMessage实现的,本人还提供一个PostMessage,不过估计没用 |
|
|
驱动老牛
|
地板#
发布于:2005-02-28 09:41
SendMessage
或广播一个消息 |
|