我有一个非常简单的应用程序,其中包含一个表单、一个 richedit 和一个菜单。我正在尝试自动将文本保存在 richedit 上并执行其他任务,但仅应用程序处于空闲状态时 - 当用户未写入或应用程序失去焦点或其他任何情况时。
我尝试从互联网上找到的大量示例代码创建一个 OnIdle
事件处理程序,但它的作用恰恰相反,它会在我 使用该应用程序时激活。这link是一个例子。
我还用了一个计时器来检查用户最后一次写信给 richedit 是什么时候,但如果可能的话我宁愿不使用计时器。
有谁知道如何检测应用程序是否空闲并在空闲时运行一些代码?我正在使用 delphi 7。
最佳答案
我也会推荐一个计时器,但会“重置”倒计时(切换关闭然后重新打开)以响应 richedit 中发生的任何键盘事件。这样,您就不会在用户尝试输入时进行保存。
正如 Andreas 所指出的,下面是实际实现它的方法: 每次用户执行某些操作时,例如更改编辑器的插入符位置,执行 Timer1.Enabled := false; Timer1.Enabled:=真。这将重置计时器。实际上,在最后一个 Timer1.Interval 毫秒内没有用户事件之前,计时器永远不会触发
关于windows - 在应用程序空闲时执行操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3730098/