开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

楼主: 广二爷xxoo
收起左侧

[易源码分享] 扫码枪获取HOOK 区分是商品码还是付款码或者手动输入

[复制链接]
结帖率:50% (1/2)
发表于 2019-11-10 01:07:28 | 显示全部楼层   重庆市重庆市
感谢分享 十分需要!
回复 支持 反对

使用道具 举报

签到天数: 1 天

发表于 2019-10-25 17:20:00 | 显示全部楼层   湖南省长沙市
支持开源~!感谢分享
回复 支持 反对

使用道具 举报

结帖率:100% (41/41)

签到天数: 5 天

 楼主| 发表于 2019-10-23 14:15:26 | 显示全部楼层   浙江省温州市
.版本 2

.子程序 付款码钩子, 整数型, , 键盘钩子获取付款码
.参数 nCode, 整数型
.参数 wParam, 整数型
.参数 lParam, 整数型
.局部变量 消息, MSG
.局部变量 i, 整数型, 静态, "3"
.局部变量 键记录, 文本型, 静态
.局部变量 返回值, 整数型
.局部变量 字符数组, 整数型, 静态, "0"


.如果真 (nCode = 0)
    CopyMemory (消息, lParam, 20)

    ' 判断输入的是否是数字键+回车键   常量文本内容:48,49,50,51,52,53,54,55,56,57,13
    .判断开始 (文本_寻找文本 (#数字键值, 到文本 (消息.hwnd), , ) = -1 或 消息.hwnd = 8 或 消息.hwnd = 9)
        返回 (0)
    .默认

        .如果 (消息.wParam = 0)  ' // 代表按下
            ' //  开始记录时间
            i [1] = 取启动时间 ()  ' i是一个临时整数变量  忽略
            返回 (1)  ' // 1代表放行本条按键按下消息

        .否则

            ' //  这边是消息.wParam ≠ 0   说明是放开按键
            .如果 (取启动时间 () - i [1] ≤ 25)  ' //  放开的时间 - 之前记录的按下时间 = 间隔  小于等于25 就记录在键记录变量上  并拦截本条按键按下消息
                .判断开始 (消息.hwnd = 48)
                    键记录 = 键记录 + “0”
                    加入成员 (字符数组, 消息.hwnd)
                .判断 (消息.hwnd = 49)
                    键记录 = 键记录 + “1”
                    加入成员 (字符数组, 消息.hwnd)
                .判断 (消息.hwnd = 50)
                    加入成员 (字符数组, 消息.hwnd)
                    键记录 = 键记录 + “2”
                .判断 (消息.hwnd = 51)
                    加入成员 (字符数组, 消息.hwnd)
                    键记录 = 键记录 + “3”
                .判断 (消息.hwnd = 52)
                    加入成员 (字符数组, 消息.hwnd)
                    键记录 = 键记录 + “4”
                .判断 (消息.hwnd = 53)
                    加入成员 (字符数组, 消息.hwnd)
                    键记录 = 键记录 + “5”
                .判断 (消息.hwnd = 54)
                    加入成员 (字符数组, 消息.hwnd)
                    键记录 = 键记录 + “6”
                .判断 (消息.hwnd = 55)
                    加入成员 (字符数组, 消息.hwnd)
                    键记录 = 键记录 + “7”
                .判断 (消息.hwnd = 56)
                    加入成员 (字符数组, 消息.hwnd)
                    键记录 = 键记录 + “8”
                .判断 (消息.hwnd = 57)
                    加入成员 (字符数组, 消息.hwnd)
                    键记录 = 键记录 + “9”
                .判断 (消息.hwnd = 13)  ' 如果这边键代码是回车键, 开始判断是否是付款码或者商品码


                    i [2] = 取文本长度 (键记录)  ' // 键记录内容  是记录之前小于25毫秒的数字

                    .判断开始 (i [2] ≤ 19 且 i [2] ≥ 17)  ' //这边代表了应该是付款码
                        标签1.标题 = 键记录  ' // 键记录内容显示标签上
                        清除数组 (字符数组)  ' // 字符数组是键代码数组,之前按顺序记录小于25毫秒的键值
                        键记录 = “”  ' // 清空之前的记录   初始化
                        i [2] = 0  ' // 初始化
                        返回值 = 0  ' // 初始化

                    .判断 (i [2] ≤ 16 且 i [2] ≥ 5)  ' // 这边代表了应该是商品码

                        UnhookWindowsHookEx (付款码hHook)  ' // 卸载掉键盘钩子

                        ' 执行字符数组里的键值输入
                        .计次循环首 (取数组成员数 (字符数组), i [3])
                            按键2 (字符数组 [i [3]], 5, )
                        .计次循环尾 ()

                        按键2 (13, 5, )  ' h回车键

                        ' // 下面都是初始化
                        i [3] = 0
                        键记录 = “”
                        i [2] = 0
                        清除数组 (字符数组)
                        返回值 = 0
                        ' // 重新下钩子
                        付款码hHook = SetWindowsHookExA (13, &付款码钩子, GetModuleHandleA1 (0), 0)

                    .默认

                    .判断结束

                .默认

                .判断结束

            .否则

                ' // 这边代表了是正常输入
                UnhookWindowsHookEx (付款码hHook)  ' 卸载钩子
                按键2 (消息.hwnd, 5, )
                键记录 = “”
                清除数组 (字符数组)
                返回值 = 0
                ' //重新下钩子
                付款码hHook = SetWindowsHookExA (13, &付款码钩子, GetModuleHandleA1 (0), 0)
            .如果结束

        .如果结束

    .判断结束

.如果真结束
返回 (返回值)


回复 支持 反对

使用道具 举报

发表于 2019-10-23 06:33:07 | 显示全部楼层   广东省深圳市
厉害了大神好好学习一下
回复 支持 反对

使用道具 举报

发表于 2019-10-22 18:04:00 | 显示全部楼层   江苏省扬州市
好东西666666666666666
回复 支持 反对

使用道具 举报

结帖率:100% (41/41)

签到天数: 5 天

 楼主| 发表于 2019-10-21 08:58:57 | 显示全部楼层   浙江省温州市
丛心世界你不懂 发表于 2019-10-19 23:57
这一套我也写过,写法跟你差不多。有空可以一起交流一下

  好呀
回复 支持 反对

使用道具 举报

发表于 2019-10-20 21:54:22 | 显示全部楼层   山东省泰安市
支持开源!
回复 支持 反对

使用道具 举报

结帖率:75% (3/4)

签到天数: 2 天

发表于 2019-10-20 00:39:30 | 显示全部楼层   湖南省永州市
支持开源~!感谢分享
回复 支持 反对

使用道具 举报

结帖率:43% (3/7)
发表于 2019-10-19 23:57:27 | 显示全部楼层   浙江省温州市
这一套我也写过,写法跟你差不多。有空可以一起交流一下
回复 支持 反对

使用道具 举报

结帖率:94% (16/17)
发表于 2019-10-19 03:25:25 | 显示全部楼层   科特迪瓦
谢谢分享!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表