如何以编程方式安排任务

发布于 2024-12-24 02:21:05 字数 124 浏览 3 评论 0原文

如何使用 delphi 7 像 Google updater 一样安排任务?
我没有使用注册表,因为它被卡巴斯基防病毒软件检测为误报。
我在注册表中作为启动项添加的任何内容都会被检测为特洛伊木马,因此我决定使用任务计划

How can I schedule a task using delphi 7 like Google updater?
I'm not using the registry because it gets detected by Kaspersky antivirus as a false alarm.
Anything I add in the registry as a start-up item gets detected as a trojan so I decided to use task schedule

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

绝對不後悔。 2024-12-31 02:21:05

下面的代码展示了如何删除和创建将在系统启动时以系统权限运行应用程序的任务。它使用以下命令行:

但是,任务计划程序由于 Windows Vista 支持强制创建任务,因此我不会使用它来向后兼容 Windows XP,因为 Windows XP 中不存在此标志。
因此,下面的示例尝试删除任务(如果已存在),然后创建新任务。

它执行以下命令:

schtasks /delete /f /tn“myjob”
schtasks /create /tn“myjob”/tr“C:\Application.exe”/sc ONSTART /ru“系统”

/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;

The following piece of code shows how to delete and create the task which will run the application at system startup with system privileges. It uses the following command line:

However the Task Scheduler since Windows Vista supports force creation of tasks, I wouldn't use it for backward compatibility with Windows XP, where this flag doesn't exist.
So the example below tries to delete the task (if already exists) and then create the new one.

It executes these commands:

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

And here is the code:

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;
自控 2024-12-31 02:21:05

解决了这里的问题,它工作得很好,

在 Windows 7 Pro 上进行了测试,如果有人可以在 XP PRO 上为我进行测试,我将不胜感激

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;

Figured Out the problem here it works fine

Tested on windows 7 Pro if any one can test for me on XP PRO would b appreciated

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;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文