已知一窗口句柄,如何给这个窗口发送一 Ctrl+C 的事件(50分)

  • 主题发起人 主题发起人 goodbobi
  • 开始时间 开始时间
G

goodbobi

Unregistered / Unconfirmed
GUEST, unregistred user!
已知一窗口句柄,如何给这个窗口发送一 Ctrl+C 的事件<br>这是发送F9的程序,那幺我如何发送一个组合件呢.<br>PostMessage(h, WM_KEYDOWN, VK_F9, 0);//发送F9键
 
PostMessage(h, WM_KEYDOWN, ^C, 0);
 
帮你提前
 
^C 的编码应是03H
 
PWH:=findWindow('窗口名',nil);<br>PostMessage(PWH,WM_KEYDOWN,(VK_CONTROL and $3H),0);
 
都不行,请大家帮忙再想办法
 
<br>如果是给可以接收键盘的控件(如Edit)发消息,则Hwnd应该是该控件的句柄,而不是其所在的窗口
 
这样试试<br>PostMessage(hWnd, WM_KEYDOWN, VK_CONTROL, 0);//按下CTRL键<br>PostMessage(hWnd, WM_KEYDOWN, 67, 0);//按下C键<br>PostMessage(hWnd, WM_KEYUP, 67, 0);//松开C键<br>PostMessage(hWnd, WM_KEYUP, VK_CONTROL, 0);//松开CTRL键<br>如果不行,在每两条消息之间加个延时sleep(50);
 
PostMessage(hWnd, WM_KEYDOWN, VK_CONTROL, 0);//按下CTRL键<br>PostMessage(hWnd, WM_KEYDOWN, 3, 0);//按下C键<br>PostMessage(hWnd, WM_KEYUP, 3, 0);//松开C键<br>PostMessage(hWnd, WM_KEYUP, VK_CONTROL, 0);//松开CTRL键
 
&nbsp; &nbsp;Bringwindowtotop(窗口句柄);<br>&nbsp; &nbsp; keybd_event(VK_CONTROL,0,0,0);<br>&nbsp; &nbsp; keybd_event(byte('C'),byte(Mapvirtualkey(byte('C'),0)),0,0);<br>&nbsp; &nbsp; keybd_event(VK_CONTROL,0,KEYEVENTF_KEYUP,0);<br>&nbsp; &nbsp; keybd_event(byte('C'),byte(Mapvirtualkey(byte('C'),0)),KEYEVENTF_KEYUP,0);
 
最后一个什么意思~不太明白,我是新手,谁帮解释一下
 
接受答案了.
 

Similar threads

后退
顶部