::PostMessage (Hwnd, WM_KEYDOWN, 113, NULL);
如何向Hwnd窗口发送 insert 键然后发送 enter 键.谢谢!

解决方案 »

  1.   

    PostMessage(hwnd,WM_KEYDOWN,VK_RETURN,0x001C0001);
      

  2.   

    键盘消息要发给焦点控件,先发WM_KEYDOWN、再发WM_KEYUP,最后参数不要给NULL,参考MSDN中这两个消息的说明。
      

  3.   

    任何模拟键盘输入insert 键 和enter 键
      

  4.   

    模拟键盘都是贴图等,你可以模拟鼠标点击等,或者模拟按键 kb_event()
      

  5.   

    如何模拟按键输入insert 键 ,enter 键 delete键.
      

  6.   

    模拟键盘输入回车ENTER键,代码如下:keybd_event(VK_RETURN, $a ,0,0);
    keybd_event(VK_INSERT, MapVirtualKey(VK_INSERT, 0), 0, 0); 
    keybd_event(VK_DELETE,0, 0 ,0); 
      

  7.   

    例如打开一个记事本,用下面代码可以向记事本中输入a然后回车:
    HWND notepad = FindWindow(_T("Notepad"), NULL);
    HWND edit = FindWindowEx(notepad, NULL, _T("Edit"), NULL);
    ::PostMessage(edit, WM_KEYDOWN, 'A', (MapVirtualKey('A', 0)<<16)+1);
    ::PostMessage(edit, WM_KEYUP, 'A', (MapVirtualKey('A', 0)<<16)+0xc0000001);
    ::PostMessage(edit, WM_KEYDOWN, VK_RETURN, (MapVirtualKey(VK_RETURN, 0)<<16)+1);
    ::PostMessage(edit, WM_KEYUP, VK_RETURN, (MapVirtualKey(VK_RETURN, 0)<<16)+0xc0000001);
    你可以把上面所有的'A'改成你所需要的键,例如VK_INSERT、VK_DELETE。
      

  8.   

    个人倾向于使用keybd_event或者SentInput API.
      

  9.   

    麻烦老师看看第一句通不过 keybd_event(VK_RETURN, $a ,0,0); 
      

  10.   

    keybd_event(vk_return,mapVirtualKey(vk_return,0),0,0); //按下回车键 
    keybd_event(vk_return,mapVirtualKey(vk_return,0),1,0); //释放回车键 
      

  11.   

    谢谢大家的帮助~ keybd_event(VK_RETURN, 0 ,0,0); 这样用没有问题吧?
      

  12.   


    keybd_event(VK_INSERT, MapVirtualKey(VK_INSERT, 0), 0, 0); 
    Sleep(100);
    keybd_event(VK_RETURN, 0 ,0,0);
    Sleep(50);
    keybd_event(VK_RETURN, 0 ,0,0);
    Sleep(50);
    keybd_event(VK_RETURN, 0 ,0,0);
    Sleep(50);
    keybd_event(VK_RETURN, 0 ,0,0);
    Sleep(50);
    keybd_event(VK_DELETE,0, 0 ,0); 
    Sleep(50);
    keybd_event(VK_RETURN, 0 ,0,0);这样对吗?
      

  13.   

    就是模拟insert按下,按起。enter建安下,按起。就可以了。
    去MSDN差一下keybd_event的说明,应该不会很难做的。
      

  14.   

    关于这个问题,大家给出的答案,我只有一个疑问,大家在怎么知道
    HWND notepad = FindWindow(_T("Notepad"), NULL);
    HWND edit = FindWindowEx(notepad, NULL, _T("Edit"), NULL);
    记事本的窗口类是Notepad,客户区的窗口类是Edit。如果是其他的应用程序,要模拟按键,又怎样知道呢?
      

  15.   

    能用消息实现时尽量不要用keybd_event或SendInput,因为这种方式需要目标控件具有焦点,不能实现后台运行。
      

  16.   

    你可以用Spy++等工具来查看对应应用程序的控件ID信息,然后FindWindow
      

  17.   


    FindWindow() 为 CWnd * 型  HWND notepad = FindWindow(_T("Notepad"), NULL); 能这样赋值?
    应该是 HWND notepad =::FindWindow(_T("Notepad"), NULL); 吧?