我需要模拟向指定窗体发送CTRL+C模拟按键实现复制功能,不要告诉我发送wm_copy消息的方法啊,因为有的窗体是不响应WM——COPY消息的,无法实现复制功能。所以我要模拟CTRL+C同时按下的事件。希望大家帮忙。用SendMessage或者Postmessage好象都不能实现,因为它们只能实现发送但个按纽按下的效果,不能完成同时按下两个键。

解决方案 »

  1.   

    keybd_event(VK_CONTROL,MapVirtualKey(VK_CONTROL,0),0,0);
    keybd_event('C',MapVirtualKey('C',0),0,0);
    keybd_event('C',MapVirtualKey('C',0),KEYEVENTF_KEYUP,0);
    keybd_event(VK_CONTROL,MapVirtualKey(VK_CONTROL,0),KEYEVENTF_KEYUP,0);
      

  2.   

    重写虚函数PreTranslateMessage在你面加入代码HWND phwnd = GetSafeHwnd();
    if(pMsg->message == WM_KEYDOWN && pMsg->hwnd == phwnd &&   
    pMsg->wParam == ‘C’ && (GetKeyState(VK_CONTROL) & 0x8000)){
    //这里写入你想写的代码
    }