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> then
begin
tmr1.Enabled:=false;
ShowMessage('1分钟软件没有操作了');
end;
end;
end.

参考:http://www.cnblogs.com/key-ok/p/3358918.html

判断软件的闲置时间(使用Application.OnMessage过滤所有键盘鼠标消息)的更多相关文章

  1. 深入delphi编程理解之消息(五)重写(override)dispatch、wndproc方法和Application.OnMessage事件

    dispatch.wndproc是VCL framework在TWinCtronl定义的虚拟方法,下面程序通过重写(override)这两函数拦截WM_LBUTTONDOWN消息,来与Applicat ...

  2. Atitit. 如何判断软件工程师 能力模型 程序员能力模型  项目经理能力模型

    Atitit. 如何判断软件工程师 能力模型 程序员能力模型  项目经理能力模型 这里能力模型的标准化是对工具的使用为基本 工具(ide,语言,类库,框架,软件) 第一步 ::可使用api 类库 框架 ...

  3. 屏幕实时显示键盘鼠标操作软件keycastow,适合做视频教程

    屏幕实时显示键盘鼠标操作软件keycastow,适合做视频教程 学习了:https://www.52pojie.cn/thread-535154-1-1.html 进行键盘按键的屏幕实时显示:

  4. 灵玖软件Nlpir Parser语义智能内容过滤

    Internet是全球信息共享的基础设施,是一种开放和面向 所有用户的技术.它一方面要保证信息方便.快捷的共享;另一方面要防止垃圾信息的传播.网络内容分析是一种管理信 息传播的重要手段.它是网络信息安 ...

  5. 判断网站域名是否被GFW(墙)过滤屏蔽了

    GFW:Greate Firewall Of China中国防火长城: 描述: 1.今天所属的一个域名被告诉不能访问了,赶紧自己测试了一下,发现可以,然后对方试了下说是不行,然后仔细按对方说的一步步操 ...

  6. C#:判断软件运行的环境是否是Pad(PC)

    一.需求:Pad上显示某功能块,PC机上隐藏. 二.方法:从外围设备获取值判断是否是Pad. 三.具体参考代码如下: 1.外围设备值类型如下: public enum ChassisTypes { O ...

  7. centos 6.5系统判断软件是否安装,如果没安装,则直接使用yum安装,并添加启动项

    function install_software(){ software=$1 s=`rpm -qa|grep ${software}` result=$(echo ${s}|grep ${soft ...

  8. 5月22日上课笔记-js属性选择器、过滤选择器、鼠标事件

    一.属性选择器 [attr] 包含属性 [attr=value] 属性值 [attr!=value] 属性值不等于value [attr^=value] 属性值以value开头 [attr$=valu ...

  9. BCB 如何让Application收到SendMessage发送来的消息

    一般,都是通过添加一个ApplicationEvent组件就可以接收到PostMessage发来的消息,那么如何收到SendMessage发来的消息呢? https://stackoverflow.c ...

随机推荐

  1. (最新)使用爬虫刷CSDN博客访问量——亲测有效

    说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 1.概述 前言:前两天刚写了第一篇博客https://blog.csdn.net/qq_41782425/article/deta ...

  2. [D3] Select DOM Elements with D3 v4

    Before you can create dazzling data driven documents, you need to know how D3 accesses the DOM. This ...

  3. 基于深度学习的人脸识别系统(Caffe+OpenCV+Dlib)【二】人脸预处理

    前言 基于深度学习的人脸识别系统,一共用到了5个开源库:OpenCV(计算机视觉库).Caffe(深度学习库).Dlib(机器学习库).libfacedetection(人脸检测库).cudnn(gp ...

  4. 【Codeforces Round #435 (Div. 2) C】Mahmoud and Ehab and the xor

    [链接]h在这里写链接 [题意] 让你组成一个n个数的集合,使得这n个数的异或和为x; x<=1e5 每个数最大1e6; [题解] 1e5<=2^17<=2^18<=1e6的 ...

  5. windows7 通过WSUS服务器更新,报错,错误代码800b0001

    链接 您好,根据分析您的日志,可以看到“WARNING: WU client failed Searching for update with error 0x800b0001”等关键信息, 故障原因 ...

  6. Nginx+Memcached+Tomcat集群配置(MSM--win7 64bit)

    本次主要是在win7 64 上演示操作. web应用构建 Memcached安装配置启动 Tomcat配置 所需jar包 memcached-session-manager 序列化 contextxm ...

  7. [Angular2 Animation] Control Undefined Angular 2 States with void State

    Each trigger starts with an “undefined” state or a “void” state which doesn’t match any of your curr ...

  8. swift学习第十六天:懒加载和tableView

    懒加载 懒加载的介绍 swift中也有懒加载的方式 (苹果的设计思想:希望所有的对象在使用时才真正加载到内存中) 和OC不同的是swift有专门的关键字来实现懒加载 lazy关键字可以用于定义某一个属 ...

  9. CSS Reset的相关概念及实例

    原文 简书原文:https://www.jianshu.com/p/fdb79010895c 大纲 1.什么是css reset? 2.CSS reset的实例 1.什么是css reset? 个人理 ...

  10. 【48.51%】【poj 1611】The Suspects

    Time Limit: 1000MS Memory Limit: 20000K Total Submissions: 34447 Accepted: 16711 Description Severe ...