一个关于全局热键的问题,请大侠们进来看看
注册一个全局热键,热键执行代码如下:
ClipBoard.Clear;
ClipBoard.AsText:=DatetimeToStr(Now);
KEYBD_EVENT(VK_CONTROL,MapVirtualKey(VK_CONTROL,0),0,0);
KEYBD_EVENT($56,MapVirtualKey($56,0),0,0);
KEYBD_EVENT($56,MapVirtualKey($56,0),KEYEVENTF_KEYUP,0);
KEYBD_EVENT(VK_CONTROL,MapVirtualKey(VK_CONTROL,0),KEYEVENTF_KEYUP,0);
Application.ProcessMessages;
ClipBoard.Clear;
这样的话只要在当前的编辑窗口里(比如记事本、wrod等)按下注册的热键,就会输出当前时间。
但是我发现必须在代码第一行加一个showmessage或延时5秒钟(sleep(5))才能实现功能。否则就什么输出也没有。
请问为什么?