Użyłem poniższego kodu z sprawdzenie Pythona pod kątem ukończenia i nieudany harmonogram zadań Windows link . jestem w stanie znaleźć wyłączone programy planujące, ale nie mogę uruchomić wyłączonego programu planującego.

import win32com.client

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:
        settings = task.Definition.Settings
        print('Path       : %s' % task.Path)
        print('Hidden     : %s' % settings.Hidden)
        print('State      : %s' % TASK_STATE[task.State])
        print('Last Run   : %s' % task.LastRunTime)
        print('Last Result: %s\n' % task.LastTaskResult)
print('Listed %d tasks.' % n)`enter code here`

Na przykład:

print('State      : %s' % TASK_STATE[task.State])

if TASK_STATE[task.State] == "Disabled":
    task_track_started = True

Próbowałem, że powyższy kod nie działa, aby uruchomić usługę. Proszę o pomoc, z góry dziękuję.

0
sreenid 16 grudzień 2019, 10:00
Sun, czy możesz pomóc na powyższe żądanie?
 – 
sreenid
16 grudzień 2019, 13:48

1 odpowiedź

Znalazłem rozwiązanie po spędzeniu 2 godzin.

 if TASK_STATE[task.State] == "Disabled":
    print("Task Status is Disabled...")
    print(task.Path)
    p = subprocess.Popen(['SCHTASKS', '/CHANGE', '/TN', task.Path,"/ENABLE"],stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    print("Task status is ENABLED....")
0
sreenid 16 grudzień 2019, 17:45