一種電腦上長時間玩鍵盤游戲的自動檢測方法
【專利摘要】一種電腦上長時間玩鍵盤游戲的自動檢測方法,包括以下步驟: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日
【發明者】陸成剛 申請人:浙江工業大學