简介
由于工作中使用的多种开发平台软件、办公平台软件均需输入口令,为使输入快捷不易错,开发了这个口令快捷输入工具。
基本原理是使用一个活动进程监控键盘事件程序,当发现特定快捷键命令时,自动模拟键盘动作,发出口令字符串。在windows平台上全局的keyboard hook是关键技术。在hook的过程中捕获特定按键后,发送对应的消息给窗口程序,由主程序调用相关命令。
实现
键盘钩子WH_KEYBOARD
必须定义在dll中,由主程序动态加载。
钩子函数定义
// kyhk.h
extern "C" KYHK_API long KeyboardProc(int nCode, WPARAM wParam, LPARAM lParam);
// kyhk.cpp
long KeyboardProc(int nCode, WPARAM wParam, LPARAM lParam)
{
if (nCode >= 0)
{
ProcessSpecialKeys(wParam, lParam);
}
return CallNextHookEx(NULL, nCode, wParam,
lParam);
}
处理捕获的按键
void ProcessSpecialKeys(BYTE vk, LPARAM keyState)
{
// GetKeyState(0x11) & 0x8000 判断ctrl是否按下