You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Windows系统下实现应用启动时自动运行Python脚本

在Windows上实现应用启动时自动运行Python代码(无需常驻后台脚本)

方案1:使用Windows任务计划程序(推荐,支持所有启动方式)

这是最可靠的系统级方案,无需自己编写循环监测逻辑,完全依托系统服务实现触发。

操作步骤:

  1. 打开「任务计划程序」(通过开始菜单搜索即可找到)
  2. 点击右侧「创建任务」,填写自定义任务名称(比如“Run Python Script on App Launch”)
  3. 切换到「触发器」标签页,点击「新建」:
    • 在「开始任务」下拉菜单选择「WMI事件」
    • 在「查询」框中输入WQL语句,替换target_app.exe为你要监测的应用程序名:
      SELECT * FROM Win32_ProcessStartTrace WHERE ProcessName='target_app.exe'
      
    • 点击「确定」保存触发器
  4. 切换到「操作」标签页,点击「新建」:
    • 「操作」选择「启动程序」
    • 「程序或脚本」填写Python的完整路径(比如C:\Python311\python.exe)
    • 「添加参数」填写你的脚本完整路径(比如"C:\Projects\your_task_script.py")
  5. 切换到「设置」标签页,勾选「如果任务已经运行,请勿启动新实例」,避免重复触发
  6. 点击「确定」完成任务创建

只要目标应用启动(无论通过双击exe、快捷方式还是其他方式),任务计划就会自动运行你的Python脚本,脚本执行完成后自动结束,不会常驻后台占用内存。

方案2:修改应用快捷方式(仅适用于快捷方式启动场景)

如果你的应用仅通过快捷方式启动,可直接修改快捷方式的启动逻辑,让它先执行Python脚本再启动应用。

操作步骤:

  1. 找到应用的快捷方式,右键选择「属性」
  2. 在「目标」栏中,将原有内容修改为(替换为实际路径):
    cmd /c pythonw.exe "C:\Projects\your_task_script.py" && "C:\Path\To\target_app.exe"
    
    • 用pythonw.exe代替python.exe可避免弹出控制台窗口
  3. 点击「确定」保存修改

双击该快捷方式时,会静默执行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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 13:36:15