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

最新文章

  1. maven编译时如何忽略单元测试
  2. 在Android中开源类库使用过程中兼容性等问题的讨论
  3. ASP.NET中的指令:
  4. SQL Server 2008 表值参数用法
  5. Echarts动态数据显示
  6. 《算法4》读书笔记 1.4 - 算法分析(Analysis of Algorithm)
  7. Android OpenGL ES 开发(四): OpenGL ES 绘制形状
  8. Thymleaf中th:each标签遍历list如何获取index
  9. day16-(listener&filter)
  10. [USACO13DEC] Optimal Milking
  11. for循环实例
  12. finecms设置伪静态后分享到微信不能访问怎么处理
  13. 解决阿里云安骑士漏洞警告:wordpress WPImageEditorImagick 指令注入漏洞
  14. python3 中对arrow库的总结(转发)
  15. JavaWeb应用项目中文乱码的解决
  16. 《Small Memory Software:Patterns For System With Limited Memory》读书笔记
  17. ubuntu 下安装配置open-iscsi并自动挂载
  18. 005-java的Annotation
  19. shell脚本监控Linux系统性能指标
  20. JpGraph使用详解

热门文章

  1. 常用协议(SPI, UART, I2C)
  2. 【BZOJ 3998】弦论
  3. 关于idea新建子目录时往父目录名字后叠加而不是树形结构的解决方法(转)
  4. [Angular HTML] Overwrite input value, String.fromCharCode & input.selectionStart
  5. AM335x(TQ335x)学习笔记——Nand&&网卡驱动移植
  6. php课程 8-28 php如何绘制生成显示图片
  7. P2P网贷第三方托管模式存在5大缺陷,托管机构才是最大赢家
  8. 【36.86%】【codeforces 558B】Amr and The Large Array
  9. HTTP协议和HTTPS协议初探
  10. Hadoop常见异常及其解决方案 分类: A1_HADOOP 2014-07-09 15:02 4187人阅读 评论(0) 收藏