windows判断用户是否在使用键盘鼠标的API

刚刚看《编程之美》1.10节,其中提了一个问题:windows是通过什么api了解用户是否在使用鼠标或键盘的?

有两个函数可以实现这个功能,它们都包含在头文件windows.h中。


1. BOOL GetInputState(VOID);
函数功能:该函数确定在当前线程的消息队列中是否有要处理的鼠标,键盘消息.如果检测到输入的话,则返回值为非零值,否则返回值为零

2.BOOL WINAPI GetLastInputInfo( __out PLASTINPUTINFO lpi);

函数功能:获取上次输入操作的时间


参数:[out] 类型:PLASTINPUTINFO结构是一个指向接收到最后一个输入事件时间的LASTINPUTINFO结构指针。

返回值:如果调用函数成功,返回值为非零。如果调用函数失败,返回值为零。


说明:先定义
LASTINPUTINFO lpi;然后调用函数GetLastInputInfo(&lpi);获得lpi调用函数GetLastInputInfo()以后, 结构成员lpi.dwTime 中的值并非上次输入事件发生以后的毫秒数。而是上次输入事件发生时的系统运行时间。相当于上次输入事件发生时执行了lpi.dwTime=::GetTickCount()。为获得上次输入事件发生以后的毫秒数需要执行语句::GetTickCount()-lpi.dwTime。


你可能感兴趣的:(windows判断用户是否在使用键盘鼠标的API)