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

文档序号:6548605阅读:386来源:国知局
一种电脑上长时间玩键盘游戏的自动检测方法
【专利摘要】一种电脑上长时间玩键盘游戏的自动检测方法,包括以下步骤:1)创建一个DLL,里面实现全局HOOK模块的钩子函数,并导出该函数接口;2)使用Windows系统的API函数安装钩子;3)进行挂钩检测,过程如下:3.1)每隔设定的时间间隔读取全局HOOK模块维护的当前按键记录表,在当前按键记录表转化的二维状态表里取某个时刻到当前时刻的时间段,计算这个时间段里每一个按键的敲击次数;3.2)按键敲击次数是每一行的在此时段里的状态值之和,形成直方图,计算该分布图的根方差d,当根方差d大于预设阈值时,判定当前状态为电脑用户的玩游戏行为。本发明适用范围更宽、可靠性良好。
【专利说明】—种电脑上长时间玩键盘游戏的自动检测方法
【技术领域】
[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]I)创建一个DLL,里面实现全局HOOK模块的钩子函数,并导出该函数接口 ;
[0009]所述钩子函数维护一张按键记录表,该按键记录表为键盘的每一个按键开辟一个存储行,行首为按键ID,每一行中的各个时间值互不相同;每一个按键ID分配一个数字为按键序号,用按键序号、时间顺序展示成二维状态表,每一个采样时刻Tn上都至少有一个按键事件发生,发生为1、不发生为O ;
[0010]2)使用Windows系统的API函数安装钩子,所述钩子能截获Windows桌面运行的每一个进程的任何键盘操作;
[0011]3)进行挂钩检测,过程如下:
[0012]3.1)每隔设定的时间间隔读取全局HOOK模块维护的当前按键记录表,在当前按键记录表转化的二维状态表里取某个时刻到当前时刻的时间段,计算这个时间段里每一个按键的敲击次数;
[0013]3.2)按键敲击次数是每一行的在此时段里的状态值之和,形成直方图,直方图反映了各个按键在给定时段内敲击数目的分布情况,计算该分布图的根方差d,计算公式如下:
【权利要求】
1.一种电脑上长时间玩键盘游戏的自动检测方法,其特征在于:所述自动检测方法包括以下步骤: 1)创建一个DLL,里面实现全局HOOK模块的钩子函数,并导出该函数接口; 所述钩子函数维护一张按键记录表,该按键记录表为键盘的每一个按键开辟一个存储行,行首为按键ID,每一行中的各个时间值互不相同;每一个按键ID分配一个数字为按键序号,用按键序号、时间顺序展示成二维状态表,每一个采样时刻Tn上都至少有一个按键事件发生,发生为1、不发生为O; 2)使用Windows系统的API函数安装钩子,所述钩子能截获Windows桌面运行的每一个进程的任何键盘操作; 3)进行挂钩检测,过程如下: 3.1)每隔设定的时间间隔读取全局HOOK模块维护的当前按键记录表,在当前按键记录表转化的二维状态表里取某个时刻到当前时刻的时间段,计算这个时间段里每一个按键的敲击次数; 3.2)按键敲击次数是每一行的在此时段里的状态值之和,形成直方图,直方图反映了各个按键在给定时段内敲击数目的分布情况,计算该分布图的根方差d,计算公式如下:
2.如权利要求1所述的一种电脑上长时间玩键盘游戏的自动检测方法,其特征在于:所述步骤3.2)中,敲击数目居于前面几位的按键为游戏的操作键。
【文档编号】G06F11/34GK104008040SQ201410244270
【公开日】2014年8月27日 申请日期:2014年6月4日 优先权日:2014年6月4日
【发明者】陆成刚 申请人:浙江工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1