procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if (Shift=[ssctrl,ssalt]) and (key=vk_space) then showmessage('d'); end;
在keydown和keypress两个事件中试一下不就行了。我就是这样做的。
是不是想利用敲击某个键,实现某个事件,例如敲回车键 可以参考下面: procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char); begin if key=#13 then button1.Click; end; 关键在于key=#? 对吗?
Shift: TShiftState);
begin
if (Shift=[ssctrl,ssalt]) and (key=vk_space) then showmessage('d');
end;
可以参考下面:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then button1.Click;
end;
关键在于key=#?
对吗?
这样说吧,想做个机器人程序,只需要运行该程序,它就可以替代我们敲键盘的各个键了,这样明白了吗?
我不是有例子吗,执行“keybd_event(VK_RETURN,0,0,0);”就相当于按了回车键,
现在我还需要“CTRL\ALT\空格键”的代码。
应该可以吧?
VK_SHIFT=#10
VK_CONTROL=#17
keybd_event(VK_F4, 0, 0, 0); f1-f12
keybd_event(VK_SPACE, 0, 0, 0); 空格
keybd_event(VK_LEFT, 0, 0, 0);
keybd_event(ord('A'), 0, 0, 0); a-z
keybd_event(ord('1'), 0, 0, 0); 0-9
keybd_event(VK_LEFT, 0, 0, 0);
keybd_event(VK_RIGHT, 0, 0, 0);
keybd_event(VK_UP, 0, 0, 0);
keybd_event(VK_DOWN, 0, 0, 0);
keybd_event(VK_SHIFT, 0, 0, 0); shift
keybd_event(VK_TAB, 0, 0, 0); tab
keybd_event(VK_DELETE, 0, 0, 0); 删除
keybd_event(VK_RETURN,0,0,0); 回车
keybd_event(VK_Control,0, 0,0); ctrl
keybd_event(VK_MENU,0, 0,0); alt