GetLastInputInfo函数
2017-03-02 08:35
806 查看
GetLastInputInfo函数
检索上次输入事件的时间。原型
BOOL WINAPI GetLastInputInfo( _Out_ PLASTINPUTINFO plii );
参数
plii [out]
类型:
PLASTINPUTINFO
指向
LASTINPUTINFO结构的指针,用于接收最后一个输入事件的时间。
返回值
类型:
BOOL
如果函数成功,返回值为非零。
如果函数失败,返回值为零。
备注
此功能对于输入怠速检测非常有用。 但是,
GetLastInputInfo不提供跨所有正在运行的会话的系统范围的用户输入信息。 相反,
GetLastInputInfo仅为调用该函数的会话提供会话特定的用户输入信息。
收到最后一个输入事件时的计时计数(见
LASTINPUTINFO)不能保证是增量计数。 在某些情况下,该值可能小于先前事件的滴答计数。 例如,这可能是由原始输入线程和桌面线程之间的时间间隔或由
SendInput引发的事件引起的,
SendInput提供自己的
tick计数。
包含库
Minimum supported client | Windows 2000 Professional [desktop apps only] |
---|---|
Minimum supported server | Windows 2000 Server [desktop apps only] |
Header | Winuser.h (include Windows.h) |
Library | User32.lib |
DLL | User32.dll |
/************************************************************************/ /* 说明: 调用函数GetLastInputInfo()以后, 结构成员lpi.dwTime 中的值并非上次输入事件 发生以后的毫秒数。而是上次输入事件发生时的系统运行时间。相当于上次输入事件 发生时执行了lpi.dwTime=::GetTickCount()。 ::GetTickCount()-lpi.dwTime才是上次输入事件发生以后的毫秒数。 */ /************************************************************************/ //注意:windows2000以上系统才支持函数GetLastInputInfo()因此有可能需要在StdAfx.h中加上如下语句: #define _WIN32_WINNT 0x0500 //或者: #ifdef _WIN32_WINNT #undef _WIN32_WINNT #endif #define _WIN32_WINNT 0x0500 //首先定义一个计时器计时事件的定义 #define GETLASTINPUTINFO 109 //然后写一个Time计时器(具体计时器的生成步骤就不在叙述) //1、在程序初始化的时候调用 m_uGetLastInputInfo = SetTimer(GETLASTINPUTINFO, 500, NULL);//设置获取键盘和鼠标处于空闲状态的时间的计时器 //2、处理函数 void CNetAppSoftDlg::OnTimer(UINT nIDEvent) { LASTINPUTINFO lpi; DWORD dwTime = 0; switch(nIDEvent) { case GETLASTINPUTINFO://zhouzx 获取键盘和鼠标处于空闲状态的时间 lpi.cbSize = sizeof(lpi); GetLastInputInfo(&lpi);//关于此windows API接口的介绍,参见同文件夹下的文档 dwTime = ::GetTickCount()-lpi.dwTime; if (dwTime >= 30000)//30秒 { if (m_uGetLastInputInfo) { KillTimer(GETLASTINPUTINFO); } OnBnClickedButtonLock(); } break; default: break; } CDialog::OnTimer(nIDEvent); } //3、在软件解锁后的地方重新开始新的计时 m_uGetLastInputInfo = SetTimer(GETLASTINPUTINFO, 500, NULL); //4、在推出软件的时候,如果计时器没有停止,要关闭计时器 if (m_uGetLastInputInfo) { //结束获取键盘和鼠标处于空闲状态的时间定时器 KillTimer(GETLASTINPUTINFO); }
相关文章推荐
- C和Java JNA获取系统空闲时间 --GetLastInputInfo 函数
- GetLastInputInfo失败
- [转]GetLastInputInfo计时用户离开电脑及软件在指定时间锁定等
- GetLastInputInfo计时用户离开电脑及软件在指定时间锁定等
- GetLastInputInfo计时用户离开电脑及软件在指定时间锁定等(转)
- InternetGetLastResponseInfo函数
- GetLastInputInfo 判断离开状态
- GetLastInputInfo
- InternetGetLastResponseInfo函数
- 检测鼠标键盘多久没有活动(使用GetLastInputInfo API函数检测)
- 【转】取文件属性:GetFileVersionInfoSize,GetFileVersionInfo,VerQueryValue三个函数的配合
- VS6.0下使用 IP Help API(Iphlpapi.dll)系列函数之GetAdaptersAddresses(GetAdaptersInfo) 获取网卡信息简述
- Windows 的GetLastError()函数返回值之含义
- GetLastError()函数的介绍
- 关于MFC中GetLastError函数返回值的含义(仅供参考)
- GetLastError()函数
- C/C++错误分析errno,perror,strerror和GetLastError()函数返回的错误代码的意义
- get_ifi_info函数
- 显示GetLastError函数的错误信息
- 显示GetLastError函数的错误信息