一个关于全局热键的问题,请大侠们进来看看

cyddoit 2004-11-12 03:17:25
注册一个全局热键,热键执行代码如下:
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))才能实现功能。否则就什么输出也没有。
请问为什么?
...全文
91 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧