我做了一个 系统键盘钩子:
// 注册系统钩子 --- 用于 修改 按键
Hook_setting = (HHOOK)SetWindowsHookEx(WH_GETMESSAGE,
(HOOKPROC)LauncherHook_setting,
theApp.m_hInstance,
0); 问题是:
我用 左Shift、右Shift、左Ctrl、右Ctrl 来代替其它键位时,
会出问题, 比如 修改了 Shift为 小键盘Num1时,不输出,
而 修改了 Shift为 普通数字1时,输出为 !(应该是被识别为Shift+1了)。 如果我要让 修改Shift为 小键盘Num1时,正常输出Num1;
修改Shift为 普通数字1时,正常输出 1; 应该怎么做?
哪位高手,可以稍微指点一下?
// 注册系统钩子 --- 用于 修改 按键
Hook_setting = (HHOOK)SetWindowsHookEx(WH_GETMESSAGE,
(HOOKPROC)LauncherHook_setting,
theApp.m_hInstance,
0); 问题是:
我用 左Shift、右Shift、左Ctrl、右Ctrl 来代替其它键位时,
会出问题, 比如 修改了 Shift为 小键盘Num1时,不输出,
而 修改了 Shift为 普通数字1时,输出为 !(应该是被识别为Shift+1了)。 如果我要让 修改Shift为 小键盘Num1时,正常输出Num1;
修改Shift为 普通数字1时,正常输出 1; 应该怎么做?
哪位高手,可以稍微指点一下?
你确定?有人说是,必须做 驱动过滤 ,因为Shift、Ctrl、Alt、Win键 跟普通的键不一样
2L的思路应该可行,因为以前有人写过HotKey屏蔽Win键,也没见到用什么过滤驱动之类的东西
至于这个ID,我是用了好几年了。
BYTE bScan,
DWORD dwFlags,
PTR dwExtraInfo
);
BYTE bScan,
DWORD dwFlags,
PTR dwExtraInfo
);