社区
进程/线程/DLL
帖子详情
键盘钩子 为何我的钩子钩不到windows键?
freesky918
2007-12-04 09:54:11
我搞了个全局钩子,
本来只想钩掉windows键的,但是却发现钩不到。
于是就直接在KeyboardProc下用return 1返回,打算钩掉所有按键。
但却发现其它键都不能用了,而windows键还能用。
怎么这个windows键就钩不住呢?
大家帮帮忙!
...全文
106
6
打赏
收藏
键盘钩子 为何我的钩子钩不到windows键?
我搞了个全局钩子, 本来只想钩掉windows键的,但是却发现钩不到。 于是就直接在KeyboardProc下用return 1返回,打算钩掉所有按键。 但却发现其它键都不能用了,而windows键还能用。 怎么这个windows键就钩不住呢? 大家帮帮忙!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
passionhip
2007-12-06
打赏
举报
回复
帮顶,等结果。。
freesky918
2007-12-06
打赏
举报
回复
谢了,问题解决了。
以后打魔兽就不怕按到windows键呵呵。
注:
在xp下用WH_KEYBOARD_LL钩子,
需要加以下几句:
#define WH_KEYBOARD_LL 13 //缺少这句会提示WH_KEYBOARD_LL没定义
typedef struct tagKBDLLHOOKSTRUCT { //缺少此结构体的定义,会提示KBDLLHOOKSTRUCT没定义。
//此结构体是从winuser.h里面拷过来的
DWORD vkCode;
DWORD scanCode;
DWORD flags;
DWORD time;
DWORD dwExtraInfo;
} KBDLLHOOKSTRUCT, FAR *LPKBDLLHOOKSTRUCT, *PKBDLLHOOKSTRUCT;
结贴。谢谢大家。
freesky918
2007-12-06
打赏
举报
回复
那位兄弟帮帮忙?
自己顶顶。
csdn越来越冷清了,唉
tiger波波
2007-12-06
打赏
举报
回复
网上搜的,看看有没用
因为系统键在调用WH_KEYBOARD钩子之前就已经被处理了,你在WH_KEYBOARD钩子中无法处理。在Windows 9x下要禁用系统键可以参考QA000295 "如何封锁“CTRL+ALT+DEL”和“ALT+ESC”组合键"、QA000171 "如何封锁ALT-TAB、ALT-CTRL-DEL键以及不让Windows的任务栏出现"。
在Windows NT 4.0 SP3以后的版本可以使用WH_KEYBOARD_LL钩子。
某人的的意见:
建议用日志钩子,他在系统处理前处理。
an_bachelor
2007-12-05
打赏
举报
回复
Ctrl+Alt+Del這個組和鍵不能用鈎子來屏蔽
freesky918
2007-12-05
打赏
举报
回复
谢谢。
不过我只想屏蔽windows键,
就是ctrl和alt之间的那个键,按下后弹出开始菜单的那个。
Qt后台监听
键
盘
按
键
事件
该实例程序使用Qt进行,
windows
的
键
盘
后台监听,即使Qt桌面程序失去焦点在后台运行,也会捕捉到按
键
事件 这个程序使用
windows
的
钩
子
(hook)实现的,Qt官方没有相关的实现 关于编译,我用的是Qt5.9.7 MinGW32位,我还用了Qt 5.6.3MinGW32位,也变过去了, 更换编译环境时候可能会报错,这些问题请百度 我遇到过声明的函数提示已经声明了,我就声明了一次,没办发, 把声明去了,就去可以正常便过去了 还有使用
windows
系统库的时候可能会链接不上,在*.pro文件里面添加
windows
系统库就好了 列如: LIBS += -Lc:/xx/xx -lUser32 不要想着别人的代码拿过来就能跑起来,先解决编译问题,这也是在不断地积累
钩
子
函数的使用,有例子
三:程序的设计: I:设置
钩
子
设置
钩
子
是通过Set
Windows
HookEx ()的API函数. 原形: HHOOK Set
Windows
HookEx(int idHook,HOOKPROC lpfn,HINSTANCE hMod,DWORD dwThreadId) idhook:装入
钩
子
的类型. lpfn:
钩
子
进程的入口地址 hMod: 应用程序的事件句柄 dwThreadId: 装入
钩
子
的线程标示 参数: idHook: 这个参数可以是以下值: WH_CALLWNDPROC、WH_CALLWNDPROCRET、WH_CBT、WH_DEBUG、WH_FOREGROUNDIDLE、WH_GETMESSAGE、WH_JOURNALPLAYBACK、WH_JOURNALRECORD、WH_KEYBOARD、 WH_KEYBOARD_LL、WH_MOUSE、WH_MOUSE_LL、WH_MSGFILTER、WH_SHELL、WH_SYSMSGFILTER。 对于这些参数,我不想一一加以解释,因为MSDN中有关于他们的详细注解。我只挑选其中的几个加以中文说明。 WH_KEYBOARD:一旦有
键
盘
敲打消息(
键
盘
的按下、
键
盘
的弹起),在这个消息被放在应用程序的消息队列前,
WINDOWS
将会调用你的
钩
子
函数。
钩
子
函数可以 改变和丢弃
键
盘
敲打消息。 WH_MOUSE:每个鼠标消息在被放在应用程序的消息队列前,
WINDOWS
将会调用你的
钩
子
函数。
钩
子
函数可以改变和丢弃鼠标消息。 WH_GETMESSAGE:每次当你的应用程序调用一个GetMessage()或者一个PeekMessage()为了去从应用程序的消息队列中要求一个消息时,
WINDOWS
都会调用你的
钩
子
函数。 而
钩
子
函数可以改变和丢弃这个消息。 II:释放
钩
子
钩
子
的释放使用的是Unhook
Windows
HookEx()函数 原形:BOOL Unhook
Windows
HookEx( HHOOK hhk ) Unhook
Windows
HookEx()函数将释放的是
钩
子
链中函数Set
Windows
HookEx所装入的
钩
子
进程。 hhk: 将要释放的
钩
子
进程的句柄。 III:
钩
子
进程
钩
子
进程使用函数HookProc;其实HookProc仅仅只是应用程序定义的符号。比如你可以写成KeyBoardHook.但是参数是不变的。Win32 API提供了诸如:CallWndProc、 GetMsgProc、DebugProc、CBTProc、MouseProc、KeyboardProc、MessageProc等函数,对于他们的详细讲解,可以看MSDN我在此只讲解一下KeyBoardHook的含义。 原形:LRESULT CALLBACK KeyBoardHook (int nCode, WPARAM wParam, LPARAM lParam) 说明:
钩
子
进程是一些依附在一个
钩
子
上的一些函数,因此
钩
子
进程只被
WINDOWS
调用而不被应用程序调用,他们有时就需要作为一个回调函数(CALLBACK)。 参数说明: nCode:
钩
子
代码,
钩
子
进程使用
钩
子
代码去决定是否执行。而
钩
子
代码的值是依靠
钩
子
的种类来定的。每种
钩
子
种类都有他们自己一系列特性的代码。比如对于WH_KEYBOARD,
钩
子
代码的参数有:HC_ACTION,HC_NOREMOVE。HC_ACTION的意义:参数wParam 和lParam 包含了
键
盘
敲打消息的信息,HC_NOREMOVE的意义:参数wParam 和lParam包含了
键
盘
敲打消息的信息,并且,
键
盘
敲打消息一直没有从消息队列中删除。(应用程序调用PeekMessage函数,并且设置PM_NOREMOVE标志)。也就是说当nCode等于HC_ACTION时,
钩
子
进程必须处理消息。而为HC_NOREMOVE时,
钩
子
进程必须传递消息给CallNextHookEx函数,而不能做进一步的处理,而且必须有CallNextHookEx函数的返回值。 wParam:
键
盘
敲打所产生的
键
盘
消息,
键
盘
按
键
的虚拟代码。 lParam:包含了消息细节。 注意:如果
钩
子
进程中nCode小于零,
钩
子
进程必须返回(return) CallNextHookEx(nCode,wParam,lParam);而
钩
子
进程中的nCode大于零,但是
钩
子
进程并不处理消息, 作者推荐你调用CallNextHookEx并且返回该函数的返回值。否则,如果另一个应用程序也装入WH_KEYBOARD
钩
子
,那么该
钩
子
将不接受
钩
子
通知并且返回一个不正确的值。 如果
钩
子
进程处理了消息,它可能返回一个非零值去阻止系统传递该信息到其它剩下的
钩
子
或者
windows
进程。所以最好在
钩
子
进程的最后都返回CallNextHookEx的返回
Windows
进程常用DLL模块注入技术
课程结合多种
Windows
进程常用DLL注入技术。 远程线程注入 APC注入,异步调用过程,向目标线程插入待执行任务从而完成注入。 窗口消息注入,指定窗口进程注入,与全局
钩
子
注入类似。 环境块注入,获取进程上下文信息...
新一代
键
盘
输入保护软件 KeyDefender
KeyDefender是新一代
键
盘
输入保护软件,它不再使用原输入通道进行数据传输,而是为用户开辟了专用的加密输入通道,当用户通过
键
盘
输入数据时,KeyDefender对输入信息加密后通过该通道传输至目标程序,同时,还不停的释放干扰值,使各种
键
盘
记录软件无法获得任何有意义的信息。它能为各种软件提供
键
盘
输入保护,让您的任何
键
盘
输入比银行提供的网银保护更安全。 四大技术特性 1.内核级防护 KeyDefender不像其他输入保护软件只在应用层提供安全防护,KeyDefende提供的所有保护全在
Windows
内核中完成,让您的
键
盘
输入享受无语伦比的安全。 2.全方位保护 KeyDefender通过独立的安全输入通道、
键
值加密、虚拟
键
值干扰、防恶意输入等多种创新技术为您的
键
盘
输入提拱从应用层到内核层的全方位安全保护,能轻松阻断通过
键
盘
钩
子
、低级
钩
子
、GetKeyState、GetAsyncKeyState、GetKeyboardState、DirectX、GetRawInput、过滤驱动等各种技术实现
键
盘
记录的盗号软件。 3.超强的适用性 KeyDefender具有超强的适用性,它能为QQ、QQ游戏、IE浏览器、火狐浏览器、360浏览器、微博、博客、支付宝、PayPal、Word、Excel、阿里旺旺、云存储(如:网盘、云笔记)等各种浏览器、聊天软件、游戏、办公软件、云存储、账户登录、网上支付系统等提供防盗号、反
键
盘
记录保护。当您在公共场所或其他可能存在安全隐患的场合(如:网吧、办公场所等)进行
键
盘
输入时,您所使用的计算机可能已被安装了各种病毒、木马、盗号软件等,不用担心,只要您在输入敏感信息前开启KeyDefender保护,将不会有任何病毒、木马、盗号软件能盗走您的输入信息。 4.难以置信的易用性 KeyDefender的使用相当容易,只需鼠标左
键
单击一下或按下一热
键
,即可开启所有保护,不需要用户再进行任何的判断,所有工作都将由KeyDefender替您完成,而且您可以随意开启、停止、退出KeyDefender,它的一切完全由您撑控。 您再不用为不停的判断是否放行某操作而头痛,也不用因为软件无法退出而烦恼。 系统要求 支持的操作系统有(32bit)Win7、
Windows
XP、
Windows
Server 2003。
mouse_click3.zip
其实这里不是完全不用鼠标,而是移动鼠标到目的位置后,用
键
盘
敲击 代替鼠标点击(左
键
)。 上网或使用电脑,若频繁地左
键
点击烦了,这个程序可以 用ESC
键
帮你代替点那一下。快速敲两下ESC
键
可模拟鼠标双击。不过我为了省事, 把文件夹浏览风格改为WEB方式,桌面上一般也只要点一下。在ESC
键
本身原来会 起作用的地方可能还是不能直接代替,不过这个时候很多地方(如选菜单项或回答消息框) 一般都可以用ENTER回车
键
来起作用。不想使用该功能就还是点鼠标了,或终止key_prog.exe进程。 其中使用的技巧是
Windows
钩
子
和鼠标API
进程/线程/DLL
15,471
社区成员
49,181
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章