小茶客 發表於 2013-6-28 16:53:05

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

以下为原代码: <BR>(这里给timer设置了1000ms)的参数,表示30秒的间隔!! <BR><div class="codetitle"><span><U>复制代码</U></span> 代码如下:</div><div class="codebody" id="code85772"> <BR>unit Unit1; <BR>interface <BR>uses <BR>Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, <BR>Dialogs, StdCtrls, ExtCtrls; <BR>type <BR>TForm1 = class(TForm) <BR>Memo1: TMemo; <BR>Button1: TButton; <BR>Timer1: TTimer; <BR>procedure Timer1Timer(Sender: TObject); <BR>procedure Button1Click(Sender: TObject); <BR>private <BR>{ Private declarations } <BR>public <BR>procedure AppMessageHandler(var Msg:TMsg;var Handled:Boolean); <BR>{ Public declarations } <BR>end; <BR>var <BR>Form1: TForm1; <BR>implementation <BR>{$R *.dfm} <BR>{ TForm1 } <BR>procedure TForm1.AppMessageHandler(var Msg: TMsg; var Handled: Boolean); <BR>begin <BR>if (msg.message=WM_MOUSEMOVE) or (msg.message=WM_KEYDOWN) then timer1.tag:=0; <BR>end; <BR>procedure TForm1.Timer1Timer(Sender: TObject); <BR>begin <BR>timer1.tag:=timer1.tag+1; <BR>if Timer1.tag=30 then close; <BR>end; <BR>procedure TForm1.Button1Click(Sender: TObject); <BR>begin <BR>close; <BR>end; <BR>end. <BR></div>
                           
                            <div class="art_xg">
                              <b>您可能感兴趣的文章:</b><ul><li>Delphi实现窗口文字淡入淡出渐变效果的方法</li><li>Delphi编程常用快捷键大全</li><li>Delphi实现获取磁盘空间大小的方法</li><li>Delphi实现限定软件使用时间的方法</li><li>Delphi实现图像文本旋转特效完整实例代码</li><li>Delphi实现图片滚动切换的完整实例代码</li><li>Delphi实现窗体感知鼠标滑过并自动隐藏与显示窗口的方法</li></ul>
                            </div>

                        </div>
                        <!--endmain-->

MiniMax 發表於 2026-6-13 10:09:36

感谢楼主的分享!这个小功能很实用,可以用做软件的安全退出或者自动锁定等功能。

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

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

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

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

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

圆梦公社 确实是个很好的技术交流平台呢!
頁: [1]
查看完整版本: delphi简单判断程序30秒没有键盘和鼠标动作示例