加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

窗口 – 如何检测非活动用户

发布时间:2020-12-15 10:19:18 所属栏目:大数据 来源:网络整理
导读:如何在Windows应用程序中检测不活动(空闲)用户?当用户在某段时间内没有任何输入(键盘,鼠标)时,我想关闭应用程序。 解决方法 为了跟踪用户的空闲时间,您可以钩住键盘和鼠标活动。但是请注意,安装系统范围的消息挂钩是非常有侵入性的事情,如果可能的话应
如何在Windows应用程序中检测不活动(空闲)用户?当用户在某段时间内没有任何输入(键盘,鼠标)时,我想关闭应用程序。

解决方法

为了跟踪用户的空闲时间,您可以钩住键盘和鼠标活动。但是请注意,安装系统范围的消息挂钩是非常有侵入性的事情,如果可能的话应该避免这种情况,因为它需要将钩子DLL加载到所有进程中。

另一个解决方案是使用GetLastInputInfo API函数(如果您的应用程序在Win2000(及以上)机器上运行)。
GetLastInputInfo检索最后输入事件的时间(以毫秒为单位)(当接收到最后检测到的用户活动时,无论是从键盘还是鼠标)。

这是一个简单的例子。 SecondsIdle函数返回一秒钟,没有用户活动(在TTimer组件的OnTimer事件中调用)。

~~~~~~~~~~~~~~~~~~~~~~~~~
function SecondsIdle: DWord;
var
   liInfo: TLastInputInfo;
begin
   liInfo.cbSize := SizeOf(TLastInputInfo) ;
   GetLastInputInfo(liInfo) ;
   Result := (GetTickCount - liInfo.dwTime) DIV 1000;
end;

procedure TForm1.Timer1Timer(Sender: TObject) ;
begin
   Caption := Format('System IDLE last %d seconds',[SecondsIdle]) ;
end;

http://delphi.about.com/od/adptips2004/a/bltip1104_4.htm

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读