网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
08月14日漏签0天
tc简单开发吧 关注:3,055贴子:11,427
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 3回复贴,共1页
<<返回tc简单开发吧
>0< 加载中...

低级键盘钩子。判断 模拟按键/真实按键。

  • 只看楼主
  • 收藏

  • 回复
  • 东方日出
  • 大罗金仙
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
低级键盘钩子。判断 模拟按键/真实按键。
.
做wh_keyboard_ll 的钩子,
键盘钩子的回调函数,参数3需要写成结构体。
//
结构体有5个成员。
Public Structure KeyboardHookStruct
Dim vkCode As Integer
Dim ScanCode As Integer
Dim Flags As Integer
Dim Time As Integer
Dim DwExtraInfo As Integer
End Structure
其中各个参数意义如下:
VkCode:按键的虚拟键码。键盘上的每个按键对应一个虚拟键码
.
ScanCode:硬件的扫描码
.
成员3:
Flags:按键消息的详细信息。是一些标识位的组合
Time:时间。
DwExtraInfo:扩展到按键消息的信息
.
成员3Flags 的数值,是一个八位的二进制,各个位的信息如下:
0位:扩展键的标识位。1表示该键是扩展键;0表示不是。
1位~3位:保留位,一般是0。
4位:标识消息的类型,1表示该消息是模拟的;0表示该消息是真实的。
4 3210
.
5位:Alt键的标识位。1表示Alt是按下的;0表示Alt键没有被按下。
54 3210
.
6位:保留位,一般是0
7位:按键的状态标识位。1表示按键是弹起的,0表示按键是按下的。
7654 3210
.
在Flags参数中,第四位是能区分消息的类别。4 3210
用keybd_event函数模拟按键消息时,这位是1。
真实按键的时候,这位是0。


  • 东方日出
  • 大罗金仙
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
tc简单开发。用RtlMoveMemory 把内存中的数据,复制到tc的结构体。
.
百科首页 CopyMemory
CopyMemory和MoveMemory,
是RtlMoveMemory的一个别名
//
参数
Destination
要复制内存块的目的地址。
Source
要复制内存块的源地址。
Length
指定要复制内存块的大小,单位为字节
返回值
该函数为 VOID型,没有返回值。
//
vb6的声明:
Private Declare Sub CopyMemory Lib “kernel32” Alias “RtlMoveMemory” (Destination As Any, Source As Any, ByVal Length As Long)


2025-08-14 08:14:33
广告
不感兴趣
开通SVIP免广告
  • 东方日出
  • 大罗金仙
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
MSDN~KeyboardHookStruct,
和
Private Declare Sub CopyMemory Lib “kernel32” Alias “RtlMoveMemory” (Destination As Any, Source As Any, ByVal Length As Long),,
这是做连发的关键。


  • 东方日出
  • 大罗金仙
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
连发可以做。前提是软件模拟。
挂钩子——判断按键来源。能判断出是真实键盘按键,还是模拟按键 则一切好办。
拦截真实按键,放行模拟按键。
驱动级的就无法做判断了。
指狗为鸡。
//
哪个API,能判断出真实按键/模拟按键?
//
setwindowshookex,在回调函数里可以判断真实按键还是软件模拟。有些游戏就是靠这方法屏蔽模拟按键的
指狗为鸡 14:18
//
普通模拟,你HOOK哪个函数。
超级模拟,HOOK哪个函数?
//
低级键盘钩子,
wh_keyboard_ll,(13)
当然这只能判断是不是软件模拟,硬件戓超级是无法判断的。
指狗为鸡 15:52
===============
===============
用API函数RtlMoveMemory,,
把键盘钩子_回调函数,参数3的数据,复制到定义好的结构体中。
.
在复制之前,参数3的数据是保存在内存中的。
//
在定义RtlMoveMemory这个dll前,先要定义一个结构体1。
vkCode 整数型
ScanCode 整数型
Flags 整数型
Time 整数型
DwExtraInfo 整数型
//
定义RtlMoveMemory这个dll时,查询MSDN,参数1是结构体指针。
参数1的数据类型,定义为上一步的结构体1。勾选传址。
//
在程序集窗口,先定义一个
.局部变量 键盘
调用API函数RtlMoveMemory,,
把键盘钩子_回调函数,参数3的数据,
复制到已经定义好的结构体里面。


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 3回复贴,共1页
<<返回tc简单开发吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示