如何模拟按键 <Ctrl>+<Space> ?(80分)

  • 主题发起人 主题发起人 mblk
  • 开始时间 开始时间
M

mblk

Unregistered / Unconfirmed
GUEST, unregistred user!
如何模拟按键 <Ctrl>+<Space> ,希望提供原程序.
 
先用ORD取得它们的ASSIC值,再在KEY PRESS中写。
 
keybd_event(VK_CONTROL, 0,KEYEVENTF_EXTENDEDKEY ,0);
keybd_event(VK_SPACE, 0,KEYEVENTF_EXTENDEDKEY ,0);

keybd_event(VK_SPACE, 0,KEYEVENTF_KEYUP ,0);
keybd_event(VK_CONTROL, 0,KEYEVENTF_KEYUP ,0);
 
再问一下,keybd_event(VK_CONTROL, 0,KEYEVENTF_EXTENDEDKEY ,0) 和
keybd_event(VK_CONTROL, 0,KEYEVENTF_KEYUP ,0) 有什么区别
 
public
procedure WMHotKey(var Message: TWMHOTKEY)
message WM_HOTKEY;
-----------------
procedure TForm1.FormCreate(Sender: TObject);
begin
RegisterHotKey(handle,GlobalAddAtom('hotkey'),Mod_Control,vK_space);
end;

procedure TForm1.WMHotKey(var message: TWMHotKey);
begin
application.MessageBox('内容','标题',MB_OK);
end;

procedure TForm1.FormClose(Sender: TObject
var Action: TCloseAction);
begin
UnregisterHotKey(Handle, GlobalAddAtom('hotkey'));
end;
 
我还是不明白,keybd_event(VK_CONTROL, 0,KEYEVENTF_EXTENDEDKEY ,0) 和
keybd_event(VK_CONTROL, 0,KEYEVENTF_KEYUP ,0) 有什么区别?
 
● keybd_event
演示(带源码)
mouse_event
演示(带源码) keybd_event和mouse_event的演示程序,具体
使用方法参看“用程序模拟键盘和鼠标按键”
http://www.jxit.com.cn/devecom/coolbaby/index.html
 
那个表示KEYDOWN再KEYUP
 
我还是不明白,keybd_event(VK_CONTROL, 0,KEYEVENTF_EXTENDEDKEY ,0) 和
keybd_event(VK_CONTROL, 0,KEYEVENTF_KEYUP ,0) 有什么区别?
 
你在按键盘的时候,不是先按下去,再放开的么?
这两句话就是模拟这个动作呀
 
keybd_event事件好像有问题哦,我写了一句
keybd_event(8,0,KEYEVENTF_EXTENDEDKEY,0);模拟删除,可以是可以

可是多按几次,我的键盘就全失效了,只剩下backapaces键可以用,但却是Ctrl-Z的功能

搞笑吧,注销才能恢复。
 
。。。我晕。。。
请仔细看这个函数的HELP说明。。。
 
Thank your very much.
 
后退
顶部