# Uses the COM Task Scheduler Interface to create a task
# scheduled to execute when the current user logs on.
import win32com.client
import os
computer_name = "" #leave all blank for current computer, current user
computer_username = ""
computer_userdomain = ""
computer_password = ""
action_id = "Test Task" #arbitrary action ID
action_path = r"c:\windows\system32\calc.exe" #executable path (could be python.exe)
action_arguments = r'' #arguments (could be something.py)
action_workdir = r"c:\windows\system32" #working directory for action executable
author = "Someone" #so that end users know who you are
description = "Run calc.exe when the current user logs on"
task_id = "Test Task"
task_hidden = False #set this to True to hide the task in the interface
username = ""
password = ""
#define constants
TASK_TRIGGER_LOGON = 9
TASK_CREATE_OR_UPDATE = 6
TASK_ACTION_EXEC = 0
TASK_LOGON_INTERACTIVE_TOKEN = 3
#connect to the scheduler (Vista/Server 2008 and above only)
scheduler = win32com.client.Dispatch("Schedule.Service")
scheduler.Connect(computer_name or None, computer_username or None, computer_userdomain or None, computer_password or None)
rootFolder = scheduler.GetFolder("\\")
#(re)define the task
taskDef = scheduler.NewTask(0)
colTriggers = taskDef.Triggers
trigger = colTriggers.Create(TASK_TRIGGER_LOGON)
trigger.Id = "LogonTriggerId"
trigger.UserId = os.environ.get('USERNAME') # current user account
#trigger.Enabled = False
colActions = taskDef.Actions
action = colActions.Create(TASK_ACTION_EXEC)
action.ID = action_id
action.Path = action_path
action.WorkingDirectory = action_workdir
action.Arguments = action_arguments
info = taskDef.RegistrationInfo
info.Author = author
info.Description = description
settings = taskDef.Settings
#settings.Enabled = False
settings.Hidden = task_hidden
#settings.StartWhenAvailable = True
#register the task (create or update, just keep the task name the same)
result = rootFolder.RegisterTaskDefinition(task_id, taskDef, TASK_CREATE_OR_UPDATE, "", "", TASK_LOGON_INTERACTIVE_TOKEN)
'''
# run the task once
task = rootFolder.GetTask(task_id)
task.Enabled = True
runningTask = task.Run("")
task.Enabled = False
'''
'๐ํ๋ก๊ทธ๋๋ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ์ด์ฌ] subprocess ์ํ ๋๊ธฐ (0) | 2022.07.06 |
---|---|
[ํ์ด์ฌ] ์ปดํจํฐ ์์ ํ๋ก๊ทธ๋จ ๋ฑ๋ก ๋ฐฉ๋ฒ (0) | 2022.07.04 |
[ํ์ด์ฌ] ์์ ์ค์ผ์ค๋ฌ ๋ฑ๋ก ํ์ด์ฌ ์ฝ๋ (0) | 2022.06.29 |
[ํ์ด์ฌ] ๋ฐฐํฌ ์๋ํ ์ฐธ๊ณ ์ฝ๋ (0) | 2022.06.29 |
[ํ์ด์ฌ] ํ ์คํธ ํ์ผ ์ธ์ฝ๋ฉ ๋ณํ ํจ์ (0) | 2022.06.29 |