在网上看到很多用keyevent的那方法需要激活窗口焦点,用postmessage可以不获焦点的情况下发送,但屡试失败!不知道是否lParam参数问题
下面是我用的例子,恳请高手帮忙赐教!
Dim h As Long
h = PostMessage(mubiaoHwnd, WM_KEYDOWN, VK_F1, MapVirtualKey(VK_F1, 0))
用spy++查看,手动按的和postmessage模拟的lParam参数不同,不知道该怎么做-_-!!!
恳请高手帮忙赐教!万分感激!100分相送。

解决方案 »

  1.   

    你接着还需要发送
    PostMessage(mubiaoHwnd, WM_KEYUP, VK_F1, MapVirtualKey(VK_F1, 0))这才是一次完整的 F1
      

  2.   

    不行,试过的。关键我觉得是他们发送的消息lParam参数不同,用spy++可看到
    百思不得其解……-_-!!!
      

  3.   

    你在2次postmessage之间, sleep(50)看看。改成sendmessage看看。另, 可能你的目标程序进行了一点技巧判断, 如果当前程序不是激活的, 那么则忽略这个消息
    ,你可以在发送f1消息前, 先把目标程序激活( AppActivate targetAppTitle )试试。
      

  4.   

    你既然用spy++看到了lparam, 那么你就照这个lparam值发送啊
      

  5.   

    DX的游戏窗口,消息的确发过去就变,用spy++查看下就知道了