知识详解
这个问题需要从什么是闲置超时开始。
我个人理解,对于计算机,不进行交互操作就是闲置(当然,现在桌面机器人不断增加的时代,这样描述也不是很准确)暂时这么理解。
AutoHotkey提供了一些内置变量用于用户空闲时间的判定:
空闲时间内置变量
A_TimeIdle——从系统最后一次接收到键盘, 鼠标或其他输入后所经过的毫秒数. 这可以用来判断用户是否离开. 用户的物理输入和由 任何 程序或脚本生成的模拟输入(例如 Send 或 MouseMove 命令)会让此变量重置为零. 由于此变量的值趋向于以 10 的增量增加, 所以不应该判断它是否等于另一个值. 相反, 应该检查此变量是否大于或小于另一个值. 例如: IfGreater, A_TimeIdle, 600000, MsgBox, The last keyboard or mouse activity was at least 10 minutes ago.
A_TimeIdlePhysical——与上面类似, 但在安装了相应的钩子(键盘或鼠标) 后会忽略模拟的键击和/或鼠标点击; 即此变量仅反应物理事件. (这样避免了由于模拟键击和鼠标点击而误以为用户存在.) 如果两种钩子都没有安装, 则此变量等同于 A_TimeIdle. 如果仅安装了一种钩子, 那么仅此类型的物理输入才会对 A_TimeIdlePhysical 起作用(另一种/未安装钩子的输入, 包括物理的和模拟的, 都会被忽略).
A_TimeIdleKeyboard——如果安装了键盘钩子, 这是自系统上次接收物理键盘输入以来所经过的毫秒数. 否则, 这个变量就等于 A_TimeIdle.
A_TimeIdleMouse——如果安装了鼠标钩子, 这是自系统上次收到物理鼠标输入以来所经过的毫秒数. 否则, 这个变量就等于 A_TimeIdle.
案例
下面有个例子(实际也没啥意义就是个例子而已)进行说明:有了上面的内置变量,有些事情就好办了,比如电脑闲置一段时间就关闭屏幕或者执行一些操作啊,都可以。
太棒了,大佬~~
我配合你这个例子,结合https://www.autoahk.com/archives/33987 这篇文章的同学的自动截图。
我进行优化了一下,让截图都是有效的操作截图。电脑未操作的afk不截图,大大减少了空间占用~~~
赞????