我是靠谱客的博主 朴素日记本,最近开发中收集的这篇文章主要介绍VC++钩子使用之全局键盘钩子钩子简介,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录

  • 钩子简介
  • 使用钩子
    • 生成KeyHook.dll
    • 加载KeyHook.dll
  • 窗体接收两次按键消息的问题
  • 参考

如果想要在Win32窗体程序中实现按键捕获,可以覆写PreTranslateMessage函数,但是有一个缺点,就是此方法只有当程序窗口获取到焦点时才可以捕获到键盘,如果在其它程序窗口中按下按键,是捕获不到的,为了解决这个问题,就需要使用到钩子

钩子简介

挂钩是一种机制,应用程序可以通过它截获事件,例如消息、鼠标操作和击键。截获特定类型事件的函数称为挂钩过程。挂钩过程可以对它接收的每个事件执行操作,然后修改或放弃该事件。
钩子分为线程钩子(局部钩子)、系统钩子(全局钩子)
线程钩子监视指定线程的事件消息。
系统钩子监视系统中的所有线程的事件消息。因为系统钩子会影响系统中所有的应用程序,所以钩子函数必须放在独立的动态链接库(DLL)中。这是系统钩子和线程钩子很大的不同之处。
钩子的类型

WH_CALLWNDPROC和WH_CALLWNDPROCRET
WH_CBT
WH_DEBUG
WH_FOREGROUNDIDLE
WH_GETMESSAGE
WH_JOURNALPLAYBACK
WH_JOURNALRECORD
WH_KEYBOARD_LL
WH_KEY

最后

以上就是朴素日记本为你收集整理的VC++钩子使用之全局键盘钩子钩子简介的全部内容,希望文章能够帮你解决VC++钩子使用之全局键盘钩子钩子简介所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部