解决方法
以下代码显示了如何删除和创建将在系统启动时以系统权限运行应用程序的任务.它使用以下命令行:
但是,自Windows Vista以来,任务计划程序支持强制创建任务,我不会将其用于向后兼容Windows XP,因为Windows XP不存在此标志.
因此,下面的示例尝试删除任务(如果已存在),然后创建新任务.
它执行以下命令:
schtasks /delete /f /tn “myjob”
schtasks /create /tn “myjob” /tr “C:\Application.exe” /sc ONSTART /ru “System”/delete – delete the task
/f – suppress the confirmation
/create – create task parameter
/tn – unique name of the task
/tr – file name of an executable file
/sc – schedule type,ONSTART – run at startup
/ru – run task under permissions of the specified user
这是代码:
uses ShellAPI; procedure ScheduleRunAtStartup(const ATaskName: string; const AFileName: string; const AUserAccount: string); begin ShellExecute(0,nil,'schtasks',PChar('/delete /f /tn "' + ATaskName + '"'),SW_HIDE); ShellExecute(0,PChar('/create /tn "' + ATaskName + '" ' + '/tr "' + AFileName + '" /sc ONSTART /ru "' + AUserAccount + '"'),SW_HIDE); end; procedure TForm1.Button2Click(Sender: TObject); begin ScheduleRunAtStartup('myjob','C:\Application.exe','System'); end;