请问各位大哥,如何向所有的窗口发WM_KEYUP, WM_KEYDOWN消息,并且要模拟按键的内容,比方说A,B,C等。
keybd_event(...),  好象不能发WM_KEYUP消息,
而PostMessage(...)好象只能发给自己。
谢谢了

解决方案 »

  1.   

    WM_KEYUP, WM_KEYDOWN消息发给有焦点的窗口。BOOL PostMessage(
      HWND hWnd,      // handle of destination window//目标窗口的句柄
      UINT Msg,       // message to post
      WPARAM wParam,  // first message parameter
      LPARAM lParam   // second message parameter
    );
      

  2.   

    VOID keybd_event(
      BYTE bVk,           // virtual-key code
      BYTE bScan,         // hardware scan code
      DWORD dwFlags,      // flags specifying various function options
      DWORD dwExtraInfo   // additional data associated with keystroke
    );
    第三个参数
    为0是是keydown
    为KEYEVENTF_KEYUP时是keyup
    PostMessage()
    在MFC里可以这样用
    CWnd *pWnd=FindWindow(NULL,"目标窗口名');
    pWnd->PostMessage(WM_KEYUP,....);
      

  3.   

    谢谢两位大哥的回答。
    我用PostMessage()和keybd_event()均已实现了,只是效果不理想。
    不知哪位高手能否赐教小弟关于用JournalPlayback 钩子实现的虚拟键盘消息?
      

  4.   

    用keybd_event或SendInput,可以的,MSDN上有例子