以前捕捉键盘和鼠标通过SetWindowsHookEx的WH_KEYBOARD和WH_MOUSE来判断鼠标和键盘不动,但是这个后台钩子有的杀毒软件会屏蔽掉。
最近在网上看到一篇通过GetLastInputInfo的函数获取鼠标键盘的时间(http://www.gkong.com/blog/more.asp?name=bearded&id=3052),这个能够获取鼠标和键盘最近一次活动的时间,通过这个时间能够获取鼠标键盘的不动的时间。这个函数的具体引用如下:
/声明定义部分
static HINSTANCE hinstDLL;
typedef struct tagLASTINPUTINFO {
UINT cbSize;
DWORD dwTime;
} LASTINPUTINFO, *PLASTINPUTINFO;
typedef BOOL (CALLBACK *GetLastInputInfo)(PLASTINPUTINFO plii);
GetLastInputInfo Procee;
///加载函数部分
GetLastInputInfo instkbhook;
if(hinstDLL=LoadLibrary((LPCTSTR)"user32.dll")) {
Procee=(GetLastInputInfo)GetProcAddress(hinstDLL, "GetLastInputInfo");
}
/引用函数部分(下面的ddddd是最近一次的时间,详细见msdn)
LASTINPUTINFO tttt;
tttt.cbSize=sizeof(LASTINPUTINFO);
Procee(&tttt);
ddddd=tttt.dwTime;