在Keymouse应用程序的开发是一个小型的Windows实用程序,重新映射“Alt”键,使其成为鼠标右键。有用的人,只有一个鼠标键。
此程序将安装一个“低级键盘钩子”。当正确的Alt键(VK_RMENU)的神器出山:www.shenqi73.com下降,我们产生鼠标右键式的事件。当右边的ALT键,我们生成一个鼠标右键事件。为了应对其他按键,而在MSDN或WINUSER.H
生成的事件是由SendInput(..),在Windows NT/2K/XP功能。
键盘钩子安装与调用SetWindowsHookEx(WH_KEYBOARD_LL,...),这也是特定NT/2K/XP。这个钩子具有很好的功能,它可以“吞噬”键盘事件,所以他们没有看到其余的系统。注:WH_KEYBOARD_LL总是设置一个全局钩子,所以适用于所有的应用程序。
但是,与大多数全局钩子(其中有居住在一个DLL),WH_KEYBOARD_LL,而不是居住在一个EXE。 Windows一样的是,当它接收到一个按键,切换到背景下的EXE包含了钩,然后调用钩子函数,然后恢复环境,这是什么。
主程序中设置钩子,然后创建一个看不见的顶层窗口,顶级窗口被关闭时,在任务管理器中结束,我们解开了钩。注:它似乎更好不要有任何的窗口,刚刚进入一个无限循环。
但是,(1)同一个窗口中,我们可以更从容地退出(我们也可以选择任务管理器的进程列表中显示)。 (2)键盘钩子无法正常工作时,只是一个紧无限循环的睡眠()。它只是不工作。然后,当我创建了一个窗口,并做了一个消息循环,它奇迹般地开始工作。我的猜测是,上下文切换可能在内部使用的消息循环机制,或类似的东西。