如何使用像Google updater这样的delphi 7调度任务?
我没有使用注册表,因为它会被卡巴斯基杀毒软件检测到是一个错误警报。
我在注册表中添加的任何启动项目都会被检测为特洛伊木马程序,因此我决定使用任务计划
发布于 2012-01-03 18:19:31
下面的代码显示了如何删除和创建任务,该任务将在系统启动时以系统权限运行应用程序。它使用以下命令行:
但是,任务计划程序因为Windows Vista支持强制创建任务,所以我不会使用它来向后兼容Windows XP,因为Windows XP中不存在此标志。因此,下面的示例尝试删除任务(如果已经存在),然后创建新的任务。
它执行以下命令:
schtasks /delete /f /tn "myjob“
schtasks /create /tn "myjob“/tr "C:\Application.exe”/sc ONSTART /ru "System“
/delete -删除任务
/f -取消确认
/create -创建任务参数
/tn -任务的唯一名称
/tr -可执行文件的文件名
/sc -调度类型,ONSTART -启动时运行
/ru -在指定用户的权限下运行任务
下面是代码:
uses
ShellAPI;
procedure ScheduleRunAtStartup(const ATaskName: string; const AFileName: string;
const AUserAccount: string);
begin
ShellExecute(0, nil, 'schtasks', PChar('/delete /f /tn "' + ATaskName + '"'),
nil, SW_HIDE);
ShellExecute(0, nil, 'schtasks', PChar('/create /tn "' + ATaskName + '" ' +
'/tr "' + AFileName + '" /sc ONSTART /ru "' + AUserAccount + '"'),
nil, SW_HIDE);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
ScheduleRunAtStartup('myjob', 'C:\Application.exe', 'System');
end;发布于 2012-01-03 23:01:44
解决了这里的问题它工作得很好
在Windows7专业版上测试,如果有人能在XP专业版上为我测试,我将不胜感激
procedure ScheduleRunAtStartup(const ATaskName: string; const AFileName: string;
const GetPCName: string ; Const GetPCUser: String);
begin
ShellExecute(0, nil, 'schtasks', PChar('/delete /f /tn "' + ATaskName + '"'),
nil, SW_HIDE);
ShellExecute(0, nil, 'schtasks', PChar('/create /tn "' + ATaskName + '" ' + '/tr "' + QuotedStr(AFileName) + '" /sc ONLOGON /ru "' + GetPCName+'\'+GetPCUser + '"'), nil, SW_HIDE)
end;https://stackoverflow.com/questions/8700709
复制相似问题