lejianz
驱动中牛
驱动中牛
  • 注册日期2003-03-05
  • 最后登录2023-11-15
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望145点
  • 贡献值0点
  • 好评度116点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:2883回复:3

用SendInput来模拟HID Class设备消息

楼主#
更多 发布于:2005-02-27 17:41
用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));

}




不知是否有大侠能指点。
一起交流,共同提高!
lejianz
驱动中牛
驱动中牛
  • 注册日期2003-03-05
  • 最后登录2023-11-15
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望145点
  • 贡献值0点
  • 好评度116点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2005-02-28 12:59
谢谢bmyyyud和zhangshengyu二位大侠关注,SendInput不行,只好用SenndMessage来做了。
一起交流,共同提高!
游客

返回顶部