Windows计划任务运行PyAutoGUI脚本

Windows有个计划任务,相当于Linux的Crontab,可以定时执行一些任务,非常方便。

而有了PyAutoGUI这个利器后,我就想着让它结合Windows计划任务去实现一些自动化的、重复性的工作。

但是一开始遇到了一些问题。

首先是怎么配置这个计划任务。

Windows下创建计划任务是在控制面板->系统和安全->管理工具->计划任务里面,进去后,选择创建基本任务就可以了。

主要说下操作这一项怎么设置。

因为我们最终要执行的是Python脚本,要用python去执行它,所以有两种设置方式:

  1. 程序或脚本设置为C:\Windows\System32\cmd.exe,参数设置为/k python C:\Users\Administrator\Desktop\test.py,后面是Python脚本的路径。
  2. 新建一个test.bat文件,内容为python C:\Users\Administrator\Desktop\test.py,程序或脚本设置为C:\Users\Administrator\Desktop\test.bat

两种方式都是可以的,推荐第二种,因为它执行的是bat文件,打开的cmd窗口在脚本执行完后就自动关闭了,比较方便。

好了,开始执行吧!运行过程中发现报错了 pywintypes.error: (0, 'SetForegroundWindow', 'No error message is available')

查了一下说是调用SetForegroundWindow,也就是前置一个窗口时,可能系统检测到不是由人操作的,就给拦截掉了。

解决方法:在调用SetForegroundWindow之前发送一个键盘指令就好了,代码如下:

import win32gui, win32com.client
shell = win32com.client.Dispatch("WScript.Shell")
shell.SendKeys('%')
win32gui.SetForegroundWindow(window_handle)

问题解决,这下可以愉快地玩耍了!

Leave a Comment

豫ICP备19001387号-1