C++ Alt-Tab钩子

问题描述:

我已经看过一些示例代码来开发一个alt-tab键盘钩子,但我似乎并不了解整个事情。我知道一个.dll文件被写入,并以某种方式被注入到所有进程中。C++ Alt-Tab钩子

是否有从顶部到底部指导如何做到这一点从写入DLL加载它?

+0

我不确定键盘挂钩是否是正确答案。我倾向于在注册了原始Alt + Tab热键的进程中使用消息挂钩。 – CodesInChaos

+0

@CodeInChaos:'Alt + Tab'是一个系统定义的热键,用于在打开的窗口之间进行切换。它不是应用程序定义的热键。 –

+0

@SirRoot:你究竟对它不了解?它非常直截了当。该DLL实现了一个回调函数来处理键盘事件,然后DLL或EXE调用SetWindowsHookEx()来注册该OS的回调函数。钩子是链接的,所以当回调被调用时,它需要调用CallNextHookEx()将数据传递给链中的下一个钩子。当你完成钩住键盘时,调用'UnhookWindowsHookEx()'释放你的钩子。什么令人困惑呢? –

键盘挂钩是一个真正的共享资源,即它依赖于不彼此跺脚的程序。将其中一个插入链条总是有点冒险。我能问一下钩子的用途吗?你试图用钩子最终完成什么?

+0

我想关闭我的软件,因为我正在做一些嵌入式Windows XP的实验。我不希望用户使用alt-tab,control-alt-del或其他任何东西来获得系统的主要用途,并在操作系统周围钓鱼。我读过键盘过滤器或钩子是防止alt-tab的唯一方法,除非有另一种方式? – SirRoot