描述
由于电脑加域,管理员设置了电脑休眠时间,导致即使设置了休眠时长为从不,依旧会强制休眠。有时或许只是在记笔记,或者是看文档资料,并不会一直操作着电脑。本着偷懒的想法,实现自动操作键鼠的脚本,避免电脑休眠。
pynput库
描述
pynput是一个控制和监听键鼠的库。
pynput鼠标move的坑
pynput.mouse.move(x, y)
可以将鼠标移动到x和y,但是该方法不会被on_move(x, y)
监听到。由这点可以得知,pynput.mouse.move(x, y)
一样不会被电脑监听到,导致如果用pynput.mouse.move(x, y)
依旧会休眠。
实现
import time # 时间库
import pynput # 键鼠操作自动化库
# 数据
data = {
"activeSleepTime" : 90, # 休眠时间
"isLive" : True, # 在休眠时间期间是否进行过键鼠操作
}
# 鼠标移动监听
def on_move(x, y):
data["isLive"] = True
# 鼠标点击监听
def on_click(x, y , button, pressed):
data["isLive"] = True
# 鼠标滑轮监听
def on_scroll(x, y ,dx, dy):
data["isLive"] = True
# 键盘按下监听
def on_press(key):
data["isLive"] = True
# data[key] = True 这个设置后就可以自己弄一个长按监听等实现
# 键盘弹起监听
def on_release(key):
data["isLive"] = True
# data[key] = False 这个设置后就可以自己弄一个长按监听等实现
# 主函数
def main():
# 获取键盘的控制器
keyboardController = pynput.keyboard.Controller()
# 设置鼠标监听, 应该是另起了一个线程, 因此需要start
pynput.mouse.Listener(on_move = on_move, on_click = on_click, on_scroll = on_scroll).start()
# 设置键盘监听, 应该是另起了一个线程, 因此需要start
pynput.keyboard.Listener(on_press = on_press, on_release = on_release).start()
# 主函数内阻塞
while True:
# 在休眠前, 默认不活动 (ps: 也可以去记录监听的时间戳, 根据时间戳进行判断)
data["isLive"] = False
# 休眠
time.sleep(data["activeSleepTime"])
# 在休眠期间是否活动
if not data["isLive"]:
# 休眠期间没有活动, 模拟键盘按下和弹起
keyboardController.press(pynput.keyboard.Key.left)
keyboardController.release(pynput.keyboard.Key.left)
keyboardController.press(pynput.keyboard.Key.right)
keyboardController.release(pynput.keyboard.Key.right)
# 函数入口
if __name__ == "__main__":
main()
exit(0)