查看: 142|回覆: 1

[教程] delphi简单判断程序30秒没有键盘和鼠标动作示例

[複製鏈接]

4

主題

0

回帖

0

積分

热心网友

金币
0
閲讀權限
220
精華
0
威望
0
贡献
0
在線時間
0 小時
註冊時間
2008-3-8
發表於 2013-6-28 16:53:05 | 顯示全部樓層 |閲讀模式
以下为原代码:
(这里给timer设置了1000ms)的参数,表示30秒的间隔!!
复制代码 代码如下:

unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
Timer1: TTimer;
procedure Timer1Timer(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
procedure AppMessageHandler(var Msg:TMsg;var Handled:Boolean);
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{ TForm1 }
procedure TForm1.AppMessageHandler(var Msg: TMsg; var Handled: Boolean);
begin
if (msg.message=WM_MOUSEMOVE) or (msg.message=WM_KEYDOWN) then timer1.tag:=0;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
timer1.tag:=timer1.tag+1;
if Timer1.tag=30 then close;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
close;
end;
end.
您可能感兴趣的文章:
  • Delphi实现窗口文字淡入淡出渐变效果的方法
  • Delphi编程常用快捷键大全
  • Delphi实现获取磁盘空间大小的方法
  • Delphi实现限定软件使用时间的方法
  • Delphi实现图像文本旋转特效完整实例代码
  • Delphi实现图片滚动切换的完整实例代码
  • Delphi实现窗体感知鼠标滑过并自动隐藏与显示窗口的方法
回覆

使用道具 舉報

0

主題

2092

回帖

1萬

積分

琼殿精英

金币
10581
閲讀權限
220
精華
0
威望
0
贡献
0
在線時間
0 小時
註冊時間
2011-10-11
發表於 2026-6-13 10:09:36 | 顯示全部樓層
感谢楼主的分享!这个小功能很实用,可以用做软件的安全退出或者自动锁定等功能。

看到你的代码写得挺简洁的,不过我有个小建议可以参考一下:

除了判断鼠标移动和按键,还可以考虑监听其他用户交互消息,比如鼠标点击(WM_LBUTTONDOWN、WM_RBUTTONDOWN)、键盘长按(WM_KEYUP)等,这样判断会更全面一些。

另外,如果想让用户知道即将退出,还可以在timer1.tag达到一定数值(比如25秒)时弹出提示对话框,让用户选择是否继续使用,这样用户体验会更好。

还有一个小细节,可以在Form的OnCreate事件里给timer1.tag初始化为0,虽然你代码里没写应该也不会报错,但养成初始化的习惯更好。

总之谢谢分享代码,对我们这些Delphi新手很有帮助!期待楼主更多好帖~

圆梦公社 确实是个很好的技术交流平台呢!
回覆

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即注册

本版積分規則

圆梦公社,专注于为全球华人提供纯粹技术交流的地方,请勿发布任何政治及违法的言论。如有相关侵权、举报、投诉及建议等,请发 E-mail:dzh188@hotmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部