如何在Windows系统下实现应用启动时自动运行Python脚本
在Windows上实现应用启动时自动运行Python代码(无需常驻后台脚本)
方案1:使用Windows任务计划程序(推荐,支持所有启动方式)
这是最可靠的系统级方案,无需自己编写循环监测逻辑,完全依托系统服务实现触发。
操作步骤:
- 打开「任务计划程序」(通过开始菜单搜索即可找到)
- 点击右侧「创建任务」,填写自定义任务名称(比如“Run Python Script on App Launch”)
- 切换到「触发器」标签页,点击「新建」:
- 在「开始任务」下拉菜单选择「WMI事件」
- 在「查询」框中输入WQL语句,替换
target_app.exe为你要监测的应用程序名:SELECT * FROM Win32_ProcessStartTrace WHERE ProcessName='target_app.exe' - 点击「确定」保存触发器
- 切换到「操作」标签页,点击「新建」:
- 「操作」选择「启动程序」
- 「程序或脚本」填写Python的完整路径(比如
C:\Python311\python.exe) - 「添加参数」填写你的脚本完整路径(比如
"C:\Projects\your_task_script.py")
- 切换到「设置」标签页,勾选「如果任务已经运行,请勿启动新实例」,避免重复触发
- 点击「确定」完成任务创建
只要目标应用启动(无论通过双击exe、快捷方式还是其他方式),任务计划就会自动运行你的Python脚本,脚本执行完成后自动结束,不会常驻后台占用内存。
方案2:修改应用快捷方式(仅适用于快捷方式启动场景)
如果你的应用仅通过快捷方式启动,可直接修改快捷方式的启动逻辑,让它先执行Python脚本再启动应用。
操作步骤:
- 找到应用的快捷方式,右键选择「属性」
- 在「目标」栏中,将原有内容修改为(替换为实际路径):
cmd /c pythonw.exe "C:\Projects\your_task_script.py" && "C:\Path\To\target_app.exe"- 用
pythonw.exe代替python.exe可避免弹出控制台窗口
- 用
- 点击「确定」保存修改
双击该快捷方式时,会静默执行Python脚本,完成后自动启动目标应用。
方案3:Python实现一次性WMI事件监听
用pywin32库注册WMI事件,脚本会处于低内存的等待状态,直到目标应用启动后执行任务并自动退出,无需循环监测。
代码示例:
import win32com.client import pythoncom import os def execute_task(): # 这里编写你的任务逻辑 print("目标应用已启动,执行指定任务...") # 任务完成后直接退出程序 os._exit(0) if __name__ == "__main__": pythoncom.CoInitialize() wmi = win32com.client.GetObject("winmgmts:") # 替换为目标应用的进程名 query = "SELECT * FROM Win32_ProcessStartTrace WHERE ProcessName='target_app.exe'" event_watcher = wmi.ExecNotificationQuery(query) print("等待目标应用启动...") # 阻塞等待事件触发 event_watcher.NextEvent(-1) execute_task()
注意事项:
- 先安装依赖库:
pip install pywin32 - 脚本仅在等待事件时占用极低内存,触发后立即执行任务并退出
- 若需要开机自动启动该等待脚本,可将其快捷方式加入系统「启动」文件夹
内容的提问来源于stack exchange,提问作者DuduCreator
相关产品推荐
相关产品推荐

