获取win任务清单

发布时间 2023-07-10 09:27:35作者: CrossPython
import win32com.client
import re

taskname_patt = re.compile(r'<Command>(.+?)</Command>')
execution_patt = re.compile(r'<Arguments>(.+?)</Arguments>')
title_patt = re.compile(r'<URI>(.+?)</URI>')

TASK_ENUM_HIDDEN = 1
TASK_STATE = {0: 'Unknown',
              1: 'Disabled',
              2: 'Queued',
              3: 'Ready',
              4: 'Running'}

scheduler = win32com.client.Dispatch('Schedule.Service')
scheduler.Connect()

n = 0
folders = [scheduler.GetFolder('\\')]
while folders:
    folder = folders.pop(0)
    folders += list(folder.GetFolders(0))
    tasks = list(folder.GetTasks(TASK_ENUM_HIDDEN))
    n += len(tasks)
    for task in tasks:
        try:
            xmlstring = task.xml
            title = title_patt.findall(xmlstring)
            taskname = taskname_patt.findall(xmlstring)
            execution = execution_patt.findall(xmlstring)
            print(title[0], taskname[0], execution[0])
            print('=========================')
        except:
            pass
            print('=========================')