有没有办法通过python 3将任务添加到Windows任务调度程序?

问题描述 投票:2回答:2

我有一个生成GUI的主要python脚本,通过该GUI,我希望用户能够创建,修改和删除由Windows任务调度程序管理的调度。

python python-3.x
2个回答
4
投票

PyWin32为win32com.taskscheduler中的任务调度程序提供了一个接口。你可以在这里看到它的一个例子:

同样@FredP链接到一个更简单的好例子:

wmi模块的食谱中还有一个关于调度作业的有趣信息,尽管它似乎没有使用任务调度程序:


2
投票

此代码创建一个将在5分钟内运行的任务(使用pywin32):

import datetime
import win32com.client

scheduler = win32com.client.Dispatch('Schedule.Service')
scheduler.Connect()
root_folder = scheduler.GetFolder('\\')
task_def = scheduler.NewTask(0)

# Create trigger
start_time = datetime.datetime.now() + datetime.timedelta(minutes=5)
TASK_TRIGGER_TIME = 1
trigger = task_def.Triggers.Create(TASK_TRIGGER_TIME)
trigger.StartBoundary = start_time.isoformat()

# Create action
TASK_ACTION_EXEC = 0
action = task_def.Actions.Create(TASK_ACTION_EXEC)
action.ID = 'DO NOTHING'
action.Path = 'cmd.exe'
action.Arguments = '/c "exit"'

# Set parameters
task_def.RegistrationInfo.Description = 'Test Task'
task_def.Settings.Enabled = True
task_def.Settings.StopIfGoingOnBatteries = False

# Register task
# If task already exists, it will be updated
TASK_CREATE_OR_UPDATE = 6
TASK_LOGON_NONE = 0
root_folder.RegisterTaskDefinition(
    'Test Task',  # Task name
    task_def,
    TASK_CREATE_OR_UPDATE,
    '',  # No user
    '',  # No password
    TASK_LOGON_NONE)

有关任务及其属性的更多信息,请访问:https://docs.microsoft.com/en-us/windows/desktop/taskschd/task-scheduler-objects

© www.soinside.com 2019 - 2024. All rights reserved.