法律状态公告日
法律状态信息
法律状态
2022-05-17
未缴年费专利权终止 IPC(主分类):G06F11/34 专利号:ZL2014102442707 申请日:20140604 授权公告日:20160914
专利权的终止
2018-05-18
专利权的转移 IPC(主分类):G06F11/34 登记生效日:20180427 变更前: 变更后: 申请日:20140604
专利申请权、专利权的转移
2016-09-14
授权
授权
2014-09-24
实质审查的生效 IPC(主分类):G06F11/34 申请日:20140604
实质审查的生效
2014-08-27
公开
公开
技术领域
本发明属于电脑屏幕监控技术领域,尤其是一种电脑上长时间玩键盘游戏的 自动检测方法。
背景技术
长期以来,单机的、网络的电脑游戏十分盛行,导致不少青少年沉迷于电脑 游戏、荒废学业,严重影响了青少年的身心健康。尤其是家庭、学校和公司里的 电脑使用,家长、老师和企业经营者很关心电脑是否被较长时间用于玩游戏而浪 费了学习和工作的时间。于此,市场上有一些电脑屏幕监控软件和系统,通过适 时地拷贝屏幕图像来作为电脑用户使用行为的备查记录。这一类方法成本略高, 系统运行侵占了电脑的一定CPU计算资源和网络带宽,而且检查过程需要系统用 户查阅录像而变得复杂繁重,更重要的是这样的系统有侵犯电脑用户隐私之嫌。
电脑游戏有很小部分只使用鼠标、而不使用键盘,称之谓非键盘游戏,例如“挖 地雷”等。非键盘游戏有一些益智的成份,或者由于玩家的操作节奏不快、心理紧 张程度不高,所以禁用的迫切性有限,本方案仅仅考虑键盘游戏的长时间操作行 为的检测。
在《软件报》的一篇技术文章“利用键盘HOOK监控上网玩游戏”(详见: http://www.360doc.com/content/12/0216/16/8484669_187115137.shtml)中运用C# 提供的钩子(HOOK)功能,设置对四个方向键和空格键的钩子,统计这些按键 的敲击频率,当这个频率大于一定的阈值时即可认定操作人员在玩游戏。这个方 法的重要缺陷在于,很多游戏的操作键并不是方向键、比如WASD键和空格键、 又比如ASD键和JKL键等也常常被用于游戏的操作按键。而且,很多游戏为了 提高用户体验,允许用户在游戏按键的设置上分配自己感兴趣的任意按键作为操 作键。此外,敲击某键的频率高于一定的阈值这个标准过于模糊,因为这个频率 和计算时所开的时间窗口大小有关,如果敲击次数很高,但是衡量的时间窗口也 很长会导致频率较低,从而造成漏检。
发明内容
为了克服已有电脑上长时间玩键盘游戏的自动检测方法的适用范围较窄、可 靠性较差的不足,本发明提供一种适用范围更宽、可靠性良好的电脑上长时间玩 键盘游戏的自动检测方法。
本发明解决其技术问题所采用的技术方案是:
一种电脑上长时间玩键盘游戏的自动检测方法,所述自动检测方法包括以下 步骤:
1)创建一个DLL,里面实现全局HOOK模块的钩子函数,并导出该函数接口;
所述钩子函数维护一张按键记录表,该按键记录表为键盘的每一个按键开辟 一个存储行,行首为按键ID,每一行中的各个时间值互不相同;每一个按键ID 分配一个数字为按键序号,用按键序号、时间顺序展示成二维状态表,每一个采 样时刻Tn上都至少有一个按键事件发生,发生为1、不发生为0;
2)使用Windows系统的API函数安装钩子,所述钩子能截获Windows桌面运行 的每一个进程的任何键盘操作;
3)进行挂钩检测,过程如下:
3.1)每隔设定的时间间隔读取全局HOOK模块维护的当前按键记录表,在当前 按键记录表转化的二维状态表里取某个时刻到当前时刻的时间段,计算这个时间 段里每一个按键的敲击次数;
3.2)按键敲击次数是每一行的在此时段里的状态值之和,形成直方图,直方图反 映了各个按键在给定时段内敲击数目的分布情况,计算该分布图的根方差d,计 算公式如下:
式子里,num表示分布均值,Num(i)表示序号为i的按键敲击数目,NUM为总的 按键数目;
当根方差d大于预设阈值时,判定当前状态为电脑用户的玩游戏行为。
进一步,所述步骤3.2)中,敲击数目居于前面几位的按键为游戏的操作键。
本发明的技术构思为:从全键盘按键的敲击数目分布来看,当用户在长时间 玩键盘游戏时,敲击数较大、且集中在该游戏的几个操作键上,剩余的按键敲击 数几乎为0;而用户在其他情况使用电脑,比如文档编辑、上网、购物、或者编 写程序时,非0敲击数的按键数目比较多,分得比较散,没有像游戏那样聚集在 少数几个按键上。这个现象用统计语言描述就是前者对应的分布的方差较大,后 者的分布的方差较小。
本发明的有益效果主要表现在:1、能够智能地识别有可能作为游戏操作键的 任意按键,适用范围更宽;2、基于各个按键在给定时段内的敲击数目(直方图) 的分布情况作出判断,可靠性良好。
附图说明
图1是电脑上长时间玩键盘游戏的自动检测系统的业务应用模块的原理框 图。
图2是按键敲击数目的分布图。
具体实施方式
下面结合附图对本发明作进一步描述。
参照图1和图2,一种电脑上长时间玩键盘游戏的自动检测方法,所述自动 检测方法包括以下步骤:
1)创建一个DLL,里面实现全局HOOK模块的钩子函数,并导出该函数接口;
所述钩子函数维护一张按键记录表,该按键记录表为键盘的每一个按键开辟 一个存储行,行首为按键ID,每一行中的各个时间值互不相同;每一个按键ID 分配一个数字为按键序号,用按键序号、时间顺序展示成二维状态表,每一个采 样时刻Tn上都至少有一个按键事件发生,发生为1、不发生为0;
2)使用Windows系统的API函数安装钩子,所述钩子能截获Windows桌面运行 的每一个进程的任何键盘操作;
3)进行挂钩检测,过程如下:
3.1)每隔设定的时间间隔读取全局HOOK模块维护的当前按键记录表,在当前 按键记录表转化的二维状态表里取某个时刻到当前时刻的时间段,计算这个时间 段里每一个按键的敲击次数;
3.2)按键敲击次数是每一行的在此时段里的状态值之和,形成直方图,直方图反 映了各个按键在给定时段内敲击数目的分布情况,计算该分布图的根方差d,计 算公式如下:
式子里,num表示分布均值,Num(i)表示序号为i的按键敲击数目,NUM为总的 按键数目;
当根方差d大于预设阈值时,判定当前状态为电脑用户的玩游戏行为。
进一步,所述步骤3.2)中,敲击数目居于前面几位的按键为游戏的操作键。
本实施例中,在win32(win32,通常对32位windows操作系统的简称)编 程API(Application Program Interface,应用编程接口)集里提供了设计键盘全局 钩子的机制,设计的钩子可以截获Windows桌面运行的每一个进程的任何键盘操 作,截获键盘消息后进行按键记录,根据记录表实现本方案的分析方法来检测玩 游戏行为。
截获键盘的HOOK钩子步骤如下:
1)创建一个DLL(dynamic link library,动态链接库),里面实现钩子函数,并导 出该函数接口;
2)使用Windows系统的API函数(例如SetWindowsHookEx,SetWindowsHookEx 为一个win32的API函数)安装钩子;
3)实现挂钩的业务逻辑,即实施检测玩游戏的分析方法。
其中步骤1是全局HOOK模块实现按键记录;步骤2、3是业务应用模块, 实现安装HOOK、检测业务的逻辑,业务使用的系统,参照图1。
全局HOOK模块的钩子函数维护一张按键记录表,参照表1:
表1
表1为键盘的每一个按键开辟一个存储行(键盘采用通用的结构形式), 每一行中的各个时间值互不相同;纵列的各个按键的时间值有可能相同,只要 发生同时按住两个或多个键的情况。
表1用按键序号(每一个按键ID分配一个数字)、时间顺序展示成二维 状态表,见表2。表2每一个采样时刻Tn上都至少有一个按键事件发生,发 生为1、不发生为0;T2时刻至少有两个键被同时按击。
表2
在业务应用模块里每隔一定的时间间隔读取HOOK模块维护的当前按键记 录表。在当前按键记录表转化的状态表(如表2)里取某个时刻到当前时刻的时 间段,计算这个时间段里每一个按键的敲击次数,不妨假设,Tn+2为当前时刻, T4——Tn+2为选中的时间段。按键敲击次数是每一行的在此时段里的状态值之 和,形成如下的直方图如图2所示。
该直方图反映了各个按键在给定时段内敲击数目的分布情况。计算该分布图 的根方差d,计算公式如下
式子里num表示分布均值,Num(i)表示序号为i的按键敲击数目,NUM为总的按 键数目。当根方差d大于某一阈值时可以判定电脑用户的玩游戏行为,而且此时 敲击数目居于前面几位的按键就是游戏的操作键。
机译: 电脑游戏/游戏自动化,例如玩宾果游戏,具有两个电子可视化屏幕,彼此相对下方或侧面放置,其中屏幕为LCD,薄膜晶体管和等离子屏幕
机译: 一种在板上玩板球游戏的装置
机译: 一种用于玩拼图游戏的装置,当将整个运动部件分别放置在一组不同颜色的并置的扁平支撑盒上时,具有一组运动部件或限定闭合线的销。