键盘钩子,如何 将 Shift、Ctrl键 修改为 小键盘数字键?

maple_zhj 2009-04-24 02:08:05
我做了一个 系统键盘钩子:
// 注册系统钩子 --- 用于 修改 按键
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;

应该怎么做?
哪位高手,可以稍微指点一下?
...全文
653 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
flyskytoday 2009-04-28
  • 打赏
  • 举报
回复
楼主,现在我帮不了你,但可以帮你顶。。。。


还有,对你的ID非常好奇
这个帖子能给出200分,厉害
---------------------
等级:
可用分等级:短工
总技术分:0
总技术分排名:3000000
结帖率:0.00%
gyk120 2009-04-28
  • 打赏
  • 举报
回复
说几个键和其他键不一样,我觉得不大可能,因为虚拟扫描码也就那个数,实在不明白究竟有什么不同,进程有特权,难道键盘也有?至少我没听说过……
2L的思路应该可行,因为以前有人写过HotKey屏蔽Win键,也没见到用什么过滤驱动之类的东西
maple_zhj 2009-04-28
  • 打赏
  • 举报
回复
我再顶一下,就没人再给点建议了?
maple_zhj 2009-04-28
  • 打赏
  • 举报
回复
没有满意的答复,
随便散分了。
zouyourou 2009-04-28
  • 打赏
  • 举报
回复
去vckbase找找看答案吧。
zouyourou 2009-04-28
  • 打赏
  • 举报
回复
VOID keybd_event( BYTE bVk,
BYTE bScan,
DWORD dwFlags,
PTR dwExtraInfo
);
捕鲸叉 2009-04-28
  • 打赏
  • 举报
回复
VOID keybd_event( BYTE bVk,
BYTE bScan,
DWORD dwFlags,
PTR dwExtraInfo
);
maple_zhj 2009-04-28
  • 打赏
  • 举报
回复
To 9楼:

Shift、Ctrl、Alt 功能,

如果在 KeyDown 和KeyUp 之间 将 键盘Shift消息改成字母, 字母大写变小写,小写则变大写。

如果是改成 数字,就不输出了, 变成组合键了。

可见,Shift 还有一部分组合 ,没有被拔掉。



To 10楼:

有什么可好奇的,分本来就是用来分给别人的。
至于这个ID,我是用了好几年了。


maple_zhj 2009-04-27
  • 打赏
  • 举报
回复
还有人要补充的吗?
分加到200。
maple_zhj 2009-04-27
  • 打赏
  • 举报
回复
嗯,那先谢谢你的提供的思路 ,
我再尝试一下,如果不行,
就做过滤驱动了。
cnzdgs 2009-04-26
  • 打赏
  • 举报
回复
回复帖子只是提些参考意见,如果LZ觉得可行,就按回复的内容去做,如果觉得没有参考价值,无视即可。我回复过的帖子90%以上是自己没有验证过的,答错的时候也常有。
maple_zhj 2009-04-26
  • 打赏
  • 举报
回复
WH_KEYBOARD_LL 键盘钩子,可以做到?
你确定?

有人说是,必须做 驱动过滤 ,

因为Shift、Ctrl、Alt、Win键 跟普通的键不一样
cnzdgs 2009-04-24
  • 打赏
  • 举报
回复
系统中是要记录Shift、Ctrl等键的状态的,单修改消息达不到目的,可以改成WH_KEYBOARD_LL钩子,用keybd_event来模拟键盘输入。
  • 打赏
  • 举报
回复
楼主,是修改魔兽快捷键吗?
直接在文件里设置就好啊.
zzz822163 2009-04-24
  • 打赏
  • 举报
回复
三个消息,WM_KEYDOWN,WM_CHAR,WM_KEYUP都改了吗,你怎么做的?

15,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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