公司内网设置了强制屏保,想要取消非常困难,并且有定期刷新的设置的机制。所以不打算从源头取解决,只通过让鼠标定时移动一下来不触发进入屏保。实测下来有效果。
我用的是autohotkey 2.0 来实现的。
主要逻辑:设置一个定时器,然后在定时器内定期瞬间移动一下鼠标,肉眼看不出。
#Requires AutoHotkey v2.0
LastMouseMoveTime:=A_TickCount
SetTimer(CheckMouseMovement,1000)
CheckMouseMovement(){
global LastMouseMoveTime
TimeSinceLastMove:=((A_TickCount-LastMouseMoveTime)/1000)
; MsgBox(TimeSinceLastMove)
if (TimeSinceLastMove>=6){
MouseMove(1,0,0,"R")
MouseMove(-1,0,0,"R")
LastMouseMoveTime:=A_TickCount
}
}
代码中的注意事项:
1、设置的定时器是1秒执行一次,但是在定时器调用的函数里设置了要判断时间是否大于6秒才会做一次鼠标移动。
2、在鼠标移动的地方设置了相对模式,并且移动一个像素后立马又移动回来了。肉眼不可见,对日常操作没影响
3、在定时器调用的函数内部使用全局变量需要先在函数内部声明 global 全局变量
4、A_TickCount 返回当前时间的毫秒数,本来想用datediff 函数来计算时间差发现不行,就直接用两个数值相减来计算了。