一个关于键盘按键的问题

lb2261981 2003-10-20 04:47:57
Builder里的Form有一个OnKeyDown()事件,但他只能在窗口被激活的情况下才执行.
我想做一个程序,他在后台运行的情况下,截获操作系统的WM_KEYDOWN消息,
请问我应该用那个函数来实现?怎么写呀?
谢谢!
...全文
50 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lb2261981 2003-10-23
  • 打赏
  • 举报
回复
我看了些有关钩子的内容.
但我不知道这个函数应该在什么时候运行,
应该写在那里?
在formCreate()事件里吗?
还是别的地方??
sprewellkobe 2003-10-20
  • 打赏
  • 举报
回复
HHOOK SetWindowsHookEx(

int idHook, // type of hook to install
HOOKPROC lpfn, // address of hook procedure
HINSTANCE hMod, // handle of application instance
DWORD dwThreadId // identity of thread to install hook for
);

当第四个参数为0时,就是拦截系统的消息了
yjy1001 2003-10-20
  • 打赏
  • 举报
回复
截获操作系统的WM_KEYDOWN
如果不是只要几个热键,那么只有使用钩子函数来实现了
我不懂电脑 2003-10-20
  • 打赏
  • 举报
回复
你可以看看有关钩子方面的资料,搜索“钩子”有很多的。
ccrun.com 2003-10-20
  • 打赏
  • 举报
回复
你的意思是想要个系统热键吧?

用这个函数注册(Ctrl + Alt +Z)的热键:
RegisterHotKey(Handle, 2000, MOD_CONTROL | MOD_ALT, 'Z')
在结束时:
UnregisterHotKey(Handle,2000);

然后截获热键,在其中写你的代码就可以了。

13,824

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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