首页 > 其他分享 >判断软件的闲置时间GetLastInputInfo

判断软件的闲置时间GetLastInputInfo

时间:2023-05-11 17:22:40浏览次数:39  
标签:begin end Handled TForm1 var 软件 闲置 GetLastInputInfo procedure

//GetLastInputInfo是检测系统输入的,应用到某个程序中不合适!

此问题有二种解法来监控输入消息:

1.用线程级HOOK,钩上MOUSEHOOK与KEYBOARDHOOK

2.在Application.OnMessage中做处理

显然,用第2种方法比较方便!

众所周知,键盘与鼠标消息都是队列消息,需要经过消息队列后经过一些处理,再发往各个WNDPROC。基于这个原理,我们可以在ONMESSAGE中做一下消息处理,即先声明全局变量,用于保存上次输入动作的时间,而后用时间控件来进行定时扫描,用GetTickCount来判断是否超时。

===
unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, AppEvnts, ExtCtrls, StdCtrls;

type

TForm1 = class(TForm)

ApplicationEvents1: TApplicationEvents;

tmr1: TTimer;

edt1: TEdit;

procedure ApplicationEvents1Message(var Msg: tagMSG;

var Handled: Boolean);

procedure tmr1Timer(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

ElapsedTime:Longint;

implementation

{$R *.dfm}

procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;

var Handled: Boolean);

begin

case Msg.message of

WM_KEYDOWN,WM_LBUTTONDOWN,WM_LBUTTONUP://各种键盘与鼠标消息

begin

ElapsedTime:=GetTickCount;

//Handled:=True;这里不要把Handled设置为True,否则消息就不分发至WNDPROC了

end;

end;

end;

procedure TForm1.tmr1Timer(Sender: TObject);

begin

if GetTickCount- ElapsedTime>60000 then

begin

tmr1.Enabled:=false;

ShowMessage('1分钟软件没有操作了');

end;

end;

end.

标签:begin,end,Handled,TForm1,var,软件,闲置,GetLastInputInfo,procedure
From: https://www.cnblogs.com/lucken2000/p/17391685.html

相关文章

  • 用画图软件将两张图片拼接在一起
    网上查了几种方式。我发现最简单的方式是打开图片,点 导入新的图片即可。难道是因为系统不一样操作不一样?有的方法是复制新的图片后粘贴到画图软件上,我的不能粘贴。......
  • Lattics:一款简单易用、好看强大的「类脑式」知识管理工具,笔记应用与写作软件二合一
    如何选择一款适合自己的知识管理工具?随着数字化时代的到来,越来越多的人意识到知识管理的重要性。笔记软件和写作软件作为一种常用的知识管理工具,一直以来备受关注。从最早的印象笔记、有道云、为知笔记、幕布mubu到近几年的思源Siyuan、熊掌记Bear、flomo浮墨笔记、石墨、语雀y......
  • Principle:专为Mac设计的UI原型设计软件
    PrincipleMac是专为Mac设计UI原型设计软件。在使用PrincipleMac时,您可以快速创建各种主题,让他们与电脑相连接。在编辑界面上,您可以使用Photoshop和其他绘图工具编辑应用,包括图片样式和文本样式。如果你的工作是在计算机上创建原型设计的话,那么它能为您提供令人难以置信的方便......
  • 2023.5.11——软件工程日报
    所花时间(包括上课):6h代码量(行):0行博客量(篇):1篇今天,上午学习,下午学习。我了解到的知识点:1.了解了一些数据库的知识;2.了解了一些python的知识;3.了解了一些英语知识;5.了解了一些Javaweb的知识;4.了解了一些数学建模的知识;6.了解了一些计算机网络的知识;......
  • C# 实现winform软件最小化到系统托盘,开机自启动
    C#实现winform软件最小化到系统托盘,开机自启动 问题描述  用户的电脑是win7系统,应用系统在用户电脑上运行时部分功能需要访问注册表,但是使用这些功能时会提示用户没有权限访问注册表。原因分析  win7及后续高版本系统对用户的权限控制比较严,就算用户的权限较高,但用户启......
  • 软件工程日报——开始进行学习
    最近这几天开始放松自我了,五一放假到现在项目还没有特别大的进展。建民老师在本周的软件工程课上给我们开了一次运动会,用来鼓舞我们小组的士气,为第二阶段做准备今天,我打开了我的idea,熟悉了之前我写的代码,捋了捋之前的思路,准备为接下来的换班操作打基础临近期末考试,我今天还复习......
  • 2023.5.10——软件工程日报
    所花时间(包括上课):6h代码量(行):0行博客量(篇):1篇今天,上午学习,下午学习。我了解到的知识点:1.了解了一些数据库的知识;2.了解了一些python的知识;3.了解了一些英语知识;5.了解了一些Javaweb的知识;4.了解了一些数学建模的知识;6.了解了一些计算机网络的知识; ......
  • 一位27岁软件测试员,测试在职近5年,月薪不到2W,担心被应届生取代
    工作了近5年,一个月工资不到20K,担心被应届毕业生取代!互联网的快速发展伴随着员工适者生存的加速,测试员的薪资也在不断增长,以3年、5年、8年+为一条分水岭。如果人们的能力和体力不够,他们就会被淘汰。看起来生动的工作生活却让许多人焦虑不安。最近,一名来自211本科的测试工程师在脉......
  • 如何衡量软件测试的绩效
    绩效的主要目标是保证产品或QA过程的一致性。它也可以是一个管理系统,允许管理者根据收集到的数据做出决定。过程的绩效衡量标准的实施应该涉及到整个组织。不同团队的衡量标准可能会有所不同。什么是绩效衡量?绩效衡量是管理和了解以下方面:项目进展如何?项目中的偏差及其原因?......
  • ArcGIS软件是干什么的?地理信息分析软件ArcGIS下载安装功能使用
    ArcGIS是一个强大的地理信息系统软件,它可以用于地图制作、数据管理和空间分析等多个领域。而在这些领域中,ArcGIS具有许多独特的功能,可以帮助用户快速准确地进行地理信息数据处理和分析。在本文中,我们将主要介绍ArcGIS的三个独特功能:三维建模、空间插值和数据驱动页面,并通过实际案例......