首页 / 专利库 / 电脑零配件 / 击键 / 一种电脑上长时间玩键盘游戏的自动检测方法

一种电脑上长时间玩键盘游戏的自动检测方法

阅读:840发布:2024-02-11

专利汇可以提供一种电脑上长时间玩键盘游戏的自动检测方法专利检索,专利查询,专利分析的服务。并且一种电脑上长时间玩 键盘 游戏的自动检测方法,包括以下步骤:1)创建一个DLL,里面实现全局HOOK模 块 的钩子函数,并导出该函数 接口 ;2)使用Windows系统的API函数安装钩子;3)进行挂钩检测,过程如下:3.1)每隔设定的时间间隔读取全局HOOK模块维护的当前按键记录表,在当前按键记录表转化的二维状态表里取某个时刻到当前时刻的时间段,计算这个时间段里每一个按键的敲击次数;3.2)按键敲击次数是每一行的在此时段里的状态值之和,形成直方图,计算该分布图的根方差d,当根方差d大于预设 阈值 时,判定当前状态为电脑用户的玩游戏行为。本 发明 适用范围更宽、可靠性良好。,下面是一种电脑上长时间玩键盘游戏的自动检测方法专利的具体信息内容。

1.一种电脑上长时间玩键盘游戏的自动检测方法,其特征在于:所述自动检测方法包括以下步骤:
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大于预设阈值时,判定当前状态为电脑用户的玩游戏行为。
2.如权利要求1所述的一种电脑上长时间玩键盘游戏的自动检测方法,其特征在于:所述步骤3.2)中,敲击数目居于前面几位的按键为游戏的操作键。

说明书全文

一种电脑上长时间玩键盘游戏的自动检测方法

技术领域

[0001] 本发明属于电脑屏幕监控技术领域,尤其是一种电脑上长时间玩键盘游戏的自动检测方法。

背景技术

[0002] 长期以来,单机的、网络的电脑游戏十分盛行,导致不少青少年沉迷于电脑游戏、荒废学业,严重影响了青少年的身心健康。尤其是家庭、学校和公司里的电脑使用,家长、老师和企业经营者很关心电脑是否被较长时间用于玩游戏而浪费了学习和工作的时间。于此,市场上有一些电脑屏幕监控软件和系统,通过适时地拷贝屏幕图像来作为电脑用户使用行为的备查记录。这一类方法成本略高,系统运行侵占了电脑的一定CPU计算资源和网络带宽,而且检查过程需要系统用户查阅录像而变得复杂繁重,更重要的是这样的系统有侵犯电脑用户隐私之嫌。
[0003] 电脑游戏有很小部分只使用鼠标、而不使用键盘,称之谓非键盘游戏,例如“挖地雷”等。非键盘游戏有一些益智的成份,或者由于玩家的操作节奏不快、心理紧张程度不高,所以禁用的迫切性有限,本方案仅仅考虑键盘游戏的长时间操作行为的检测。
[0004] 在《软件报》的一篇技术文章“利用键盘HOOK监控上网玩游戏”(详见:http://www.360doc.com/content/12/0216/16/8484669_187115137.shtml)中运用C#提供的钩子(HOOK)功能,设置对四个方向键和空格键的钩子,统计这些按键的敲击频率,当这个频率大于一定的阈值时即可认定操作人员在玩游戏。这个方法的重要缺陷在于,很多游戏的操作键并不是方向键、比如WASD键和空格键、又比如ASD键和JKL键等也常常被用于游戏的操作按键。而且,很多游戏为了提高用户体验,允许用户在游戏按键的设置上分配自己感兴趣的任意按键作为操作键。此外,敲击某键的频率高于一定的阈值这个标准过于模糊,因为这个频率和计算时所开的时间窗口大小有关,如果敲击次数很高,但是衡量的时间窗口也很长会导致频率较低,从而造成漏检。

发明内容

[0005] 为了克服已有电脑上长时间玩键盘游戏的自动检测方法的适用范围较窄、可靠性较差的不足,本发明提供一种适用范围更宽、可靠性良好的电脑上长时间玩键盘游戏的自动检测方法。
[0006] 本发明解决其技术问题所采用的技术方案是:
[0007] 一种电脑上长时间玩键盘游戏的自动检测方法,所述自动检测方法包括以下步骤:
[0008] 1)创建一个DLL,里面实现全局HOOK模的钩子函数,并导出该函数接口
[0009] 所述钩子函数维护一张按键记录表,该按键记录表为键盘的每一个按键开辟一个存储行,行首为按键ID,每一行中的各个时间值互不相同;每一个按键ID分配一个数字为按键序号,用按键序号、时间顺序展示成二维状态表,每一个采样时刻Tn上都至少有一个按键事件发生,发生为1、不发生为0;
[0010] 2)使用Windows系统的API函数安装钩子,所述钩子能截获Windows桌面运行的每一个进程的任何键盘操作;
[0011] 3)进行挂钩检测,过程如下:
[0012] 3.1)每隔设定的时间间隔读取全局HOOK模块维护的当前按键记录表,在当前按键记录表转化的二维状态表里取某个时刻到当前时刻的时间段,计算这个时间段里每一个按键的敲击次数;
[0013] 3.2)按键敲击次数是每一行的在此时段里的状态值之和,形成直方图,直方图反映了各个按键在给定时段内敲击数目的分布情况,计算该分布图的根方差d,计算公式如下:
[0014]
[0015]
[0016] 式子里,num表示分布均值,Num(i)表示序号为i的按键敲击数目,NUM为总的按键数目;
[0017] 当根方差d大于预设阈值时,判定当前状态为电脑用户的玩游戏行为。
[0018] 进一步,所述步骤3.2)中,敲击数目居于前面几位的按键为游戏的操作键。
[0019] 本发明的技术构思为:从全键盘按键的敲击数目分布来看,当用户在长时间玩键盘游戏时,敲击数较大、且集中在该游戏的几个操作键上,剩余的按键敲击数几乎为0;而用户在其他情况使用电脑,比如文档编辑、上网、购物、或者编写程序时,非0敲击数的按键数目比较多,分得比较散,没有像游戏那样聚集在少数几个按键上。这个现象用统计语言描述就是前者对应的分布的方差较大,后者的分布的方差较小。
[0020] 本发明的有益效果主要表现在:1、能够智能地识别有可能作为游戏操作键的任意按键,适用范围更宽;2、基于各个按键在给定时段内的敲击数目(直方图)的分布情况作出判断,可靠性良好。附图说明
[0021] 图1是电脑上长时间玩键盘游戏的自动检测系统的业务应用模块的原理框图
[0022] 图2是按键敲击数目的分布图。

具体实施方式

[0023] 下面结合附图对本发明作进一步描述。
[0024] 参照图1和图2,一种电脑上长时间玩键盘游戏的自动检测方法,所述自动检测方法包括以下步骤:
[0025] 1)创建一个DLL,里面实现全局HOOK模块的钩子函数,并导出该函数接口;
[0026] 所述钩子函数维护一张按键记录表,该按键记录表为键盘的每一个按键开辟一个存储行,行首为按键ID,每一行中的各个时间值互不相同;每一个按键ID分配一个数字为按键序号,用按键序号、时间顺序展示成二维状态表,每一个采样时刻Tn上都至少有一个按键事件发生,发生为1、不发生为0;
[0027] 2)使用Windows系统的API函数安装钩子,所述钩子能截获Windows桌面运行的每一个进程的任何键盘操作;
[0028] 3)进行挂钩检测,过程如下:
[0029] 3.1)每隔设定的时间间隔读取全局HOOK模块维护的当前按键记录表,在当前按键记录表转化的二维状态表里取某个时刻到当前时刻的时间段,计算这个时间段里每一个按键的敲击次数;
[0030] 3.2)按键敲击次数是每一行的在此时段里的状态值之和,形成直方图,直方图反映了各个按键在给定时段内敲击数目的分布情况,计算该分布图的根方差d,计算公式如下:
[0031]
[0032]
[0033] 式子里,num表示分布均值,Num(i)表示序号为i的按键敲击数目,NUM为总的按键数目;
[0034] 当根方差d大于预设阈值时,判定当前状态为电脑用户的玩游戏行为。
[0035] 进一步,所述步骤3.2)中,敲击数目居于前面几位的按键为游戏的操作键。
[0036] 本实施例中,在win32(win32,通常对32位windows操作系统的简称)编程API(Application Program Interface,应用编程接口)集里提供了设计键盘全局钩子的机制,设计的钩子可以截获Windows桌面运行的每一个进程的任何键盘操作,截获键盘消息后进行按键记录,根据记录表实现本方案的分析方法来检测玩游戏行为。
[0037] 截获键盘的HOOK钩子步骤如下:
[0038] 1)创建一个DLL(dynamic link library,动态链接库),里面实现钩子函数,并导出该函数接口;
[0039] 2)使用Windows系统的API函数(例如SetWindowsHookEx,SetWindowsHookEx为一个win32的API函数)安装钩子;
[0040] 3)实现挂钩的业务逻辑,即实施检测玩游戏的分析方法。
[0041] 其中步骤1是全局HOOK模块实现按键记录;步骤2、3是业务应用模块,实现安装HOOK、检测业务的逻辑,业务使用的系统,参照图1。
[0042] 全局HOOK模块的钩子函数维护一张按键记录表,参照表1:
[0043]按键ID 敲击时间
‘A’ A_time1,A_time2,A_time3,……
‘B’ B_time1,B_time2,B_time3,……
‘C’ C_time1,C_time2,C_time3,……
‘D’ D_time1,D_time2,D_time3,……
…… ……
‘Alt’ Alt_time1,Alt_time2,Alt_time3,……
……  
‘F1’ F1_time1,F1_time2,F1_time3,……
……  
‘Del’ Del_time1,Del_time2,Del_time3,……
[0044] 表1
[0045] 表1为键盘的每一个按键开辟一个存储行(键盘采用通用的结构形式),每一行中的各个时间值互不相同;纵列的各个按键的时间值有可能相同,只要发生同时按住两个或多个键的情况。
[0046] 表1用按键序号(每一个按键ID分配一个数字)、时间顺序展示成二维状态表,见表2。表2每一个采样时刻Tn上都至少有一个按键事件发生,发生为1、不发生为0;T2时刻至少有两个键被同时按击。
[0047]
[0048] 表2
[0049] 在业务应用模块里每隔一定的时间间隔读取HOOK模块维护的当前按键记录表。在当前按键记录表转化的状态表(如表2)里取某个时刻到当前时刻的时间段,计算这个时间段里每一个按键的敲击次数,不妨假设,Tn+2为当前时刻,T4——Tn+2为选中的时间段。按键敲击次数是每一行的在此时段里的状态值之和,形成如下的直方图如图2所示。
[0050] 该直方图反映了各个按键在给定时段内敲击数目的分布情况。计算该分布图的根方差d,计算公式如下
[0051]
[0052]
[0053] 式子里num表示分布均值,Num(i)表示序号为i的按键敲击数目,NUM为总的按键数目。当根方差d大于某一阈值时可以判定电脑用户的玩游戏行为,而且此时敲击数目居于前面几位的按键就是游戏的操作键。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈