Delphi程序在闲置多长时间后会自动关闭?
- 内容介绍
- 文章标签
- 相关推荐
本文共计497个文字,预计阅读时间需要2分钟。
要检查程序的空闲时间而不是系统空闲时间,可以使用以下方法:
1. 使用定时器或计时器来跟踪程序运行的时间。
2.在程序中设置一个持续的时间参数,当达到该时间且程序未使用时,触发自动操作。
以下是一个简化的示例代码,使用Delphi XE编写:
delphi
procedure TForm1.FormCreate(Sender: TObject);begin // 设置持续时间为10秒 ContinuousTime :=10; // 启动定时器 Timer1.Interval :=ContinuousTime * 1000; // 将秒转换为毫秒 Timer1.Enabled :=True;end;procedure TForm1.Timer1Timer(Sender: TObject);begin // 检查程序是否在设定的持续时间内未被使用 if (GetTickCount - StartTime) >=ContinuousTime * 1000 then begin // 执行自动操作 PerformAutoAction; end;end;
procedure TForm1.PerformAutoAction;begin // 在这里编写自动操作的代码 ShowMessage('程序已空闲超过设定时间,执行自动操作!');end;
var ContinuousTime: Integer; // 持续时间参数 StartTime: Int64; // 程序开始运行的时间戳 Timer1: TTimer;begin // 初始化组件 ContinuousTime :=10; StartTime :=GetTickCount;end.
参见英文答案 > How do I check for PROGRAM idle time, as opposed to SYSTEM idle time?3个我们有一个程序,我们正在用Delphi XE编写.我有个问题 :
如果程序在我们设置为参数的持续时间内未使用,则应自动返回到输入屏幕.所以像Windows一样,必须有像鼠标和键盘这样的控件.你能帮帮我吗?
谢谢.
定期调用GetLastInputInfo.这将返回上次输入事件的滴答计数.然后将输入事件的滴答计数与当前滴答计数之间的差异与超时进行比较.
这种方法的缺点是你必须处理具有32位Windows滴答计数的49天翻转问题.作为替代方案,您可以选择安装系统挂钩来监视键盘和鼠标事件.这将允许您避免49天翻转问题,但实施起来要复杂得多.
本文共计497个文字,预计阅读时间需要2分钟。
要检查程序的空闲时间而不是系统空闲时间,可以使用以下方法:
1. 使用定时器或计时器来跟踪程序运行的时间。
2.在程序中设置一个持续的时间参数,当达到该时间且程序未使用时,触发自动操作。
以下是一个简化的示例代码,使用Delphi XE编写:
delphi
procedure TForm1.FormCreate(Sender: TObject);begin // 设置持续时间为10秒 ContinuousTime :=10; // 启动定时器 Timer1.Interval :=ContinuousTime * 1000; // 将秒转换为毫秒 Timer1.Enabled :=True;end;procedure TForm1.Timer1Timer(Sender: TObject);begin // 检查程序是否在设定的持续时间内未被使用 if (GetTickCount - StartTime) >=ContinuousTime * 1000 then begin // 执行自动操作 PerformAutoAction; end;end;
procedure TForm1.PerformAutoAction;begin // 在这里编写自动操作的代码 ShowMessage('程序已空闲超过设定时间,执行自动操作!');end;
var ContinuousTime: Integer; // 持续时间参数 StartTime: Int64; // 程序开始运行的时间戳 Timer1: TTimer;begin // 初始化组件 ContinuousTime :=10; StartTime :=GetTickCount;end.
参见英文答案 > How do I check for PROGRAM idle time, as opposed to SYSTEM idle time?3个我们有一个程序,我们正在用Delphi XE编写.我有个问题 :
如果程序在我们设置为参数的持续时间内未使用,则应自动返回到输入屏幕.所以像Windows一样,必须有像鼠标和键盘这样的控件.你能帮帮我吗?
谢谢.
定期调用GetLastInputInfo.这将返回上次输入事件的滴答计数.然后将输入事件的滴答计数与当前滴答计数之间的差异与超时进行比较.
这种方法的缺点是你必须处理具有32位Windows滴答计数的49天翻转问题.作为替代方案,您可以选择安装系统挂钩来监视键盘和鼠标事件.这将允许您避免49天翻转问题,但实施起来要复杂得多.

