Delphi 自动检测异常状态的封装单元(含源码)—— 3分钟无响应自动报警

💡 一、项目背景
在游戏开发、自动化脚本、挂机工具或生产监控系统中,
我们经常需要判断程序是否在正常运作。
例如:
- 游戏挂机中“物品长时间没进包裹”可能代表卡死;
- 自动生产系统中“产出超时”说明流程出错;
- 定时任务程序中“太久无更新”意味着线程停止。
这种情况如果不能及时发现,
就会造成程序卡死、数据丢失、收益中断等问题。
⚙️ 二、功能简介
本单元提供了一个简单易用的检测机制:
- 自动记录“上次事件时间”;
- 定时器每隔固定时间检查;
- 如果超过设定时间(默认 3 分钟)未触发新事件,立即报警;
- 可以改变任务栏图标,特别是很多窗口的情况下一眼就能找。
📦 三、源码声明部分
typeTTaskbarMonitor = classprivateFMainForm: TForm;FTimer: TTimer;FOriginalIcon: TIcon;FErrorIcon: TIcon;FLastSuccessTime: TDateTime;FTimeoutMinutes: Integer;FErrorIconPath: string; // 可外部修改默认错误图标路径procedure TimerHandler(Sender: TObject);procedure UpdateTaskbarIcon(NewIcon: TIcon);publicconstructor Create(AMainForm: TForm; ACheckIntervalMin, ATimeoutMin: Integer);destructor Destroy; override;// 公共方法procedure UpdateLastSuccessTime; // 当程序正常运行时调用procedure Stop;procedure NotifyErrorIcon;procedure NotifyNormalIcon;// 公共属性,可外部修改默认错误图标路径property ErrorIconPath: string read FErrorIconPath write FErrorIconPath;end;
四、完整Demo源码下载
点击下载: https://download.csdn.net/download/gust2013/92201931
