向大虾求救:如何模拟键盘(一定是要求组合键)(100分)

  • 主题发起人 主题发起人 ljy
  • 开始时间 开始时间
L

ljy

Unregistered / Unconfirmed
GUEST, unregistred user!
模拟[:)]"ctrl+C"或"ctrl+s"等功能
 
你试试,在一个Button的Click事件中加上:
procedure TForm1.Button1Click(Sender: TObject);
begin
keybd_event(18, MapVirtualKey(18, 0), 0, 0);//ALT键,我忘了虚键值.
keybd_event(VK_F4, MapVirtualKey(VK_F4, 0), 0, 0);
keybd_event(VK_F4, MapVirtualKey(VK_F4, 0), KEYEVENTF_KEYUP, 0);
keybd_event(18, MapVirtualKey(18, 0), KEYEVENTF_KEYUP, 0);
end;
你的程序关掉了,因为这相当于ALT+F4,呵呵...
 
zhangkan,你好!
实现ALT+F4没问题,但是我现在要实现CTRL+C和CTRL+V但却不能模拟该键的COPY和PASTE功能!
 
coolbaby.delphibbs.com
有demo和源码
 
您把事件放在Button1的Click中当你点击Button1 时焦点到了Button1上再按Ctrl+C就不能复制了,在虚拟按键前,把你要复制的对象全选上,让它得到焦点即可,下面代码我试过了(给点分儿吧!)
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.SelectAll;
Edit1.SetFocus;
keybd_event(17, MapVirtualKey(17, 0), 0, 0);//ALT键,我忘了虚键值.
keybd_event(67, MapVirtualKey(67, 0), 0, 0);
keybd_event(67, MapVirtualKey(67, 0), KEYEVENTF_KEYUP, 0);
keybd_event(17, MapVirtualKey(17, 0), KEYEVENTF_KEYUP, 0);
end;
以后再粘贴就行了
 
后退
顶部