获取鼠标与键盘空闲时间
在做电子地图时,客户提到一个需求,要求当鼠标移动到地图的某个位置时,显示地图位置的相关信息。在地图上OnMouseMove中写的话,效率太低,所以想了一个办法,当光标在某个位置停留达到一定时间(如200毫秒)时,再进行一次检索,以便提高效率。
以下是获取空闲时间的代码,主要用到了GetLastInputInfo,关于这个API的用法,可以参考
使用前记得初始化结构体TLastInputInfo,并给cbSize赋值,否则函数将返回False
function GetIdleTime: Cardinal; var pill: TLastInputInfo; begin ZeroMemory(@pill, SizeOf(pill)); pill.cbSize := SizeOf(pill); GetLastInputInfo(pill); Result := GetTickCount - pill.dwTime; end;
by lin557