unit insjob;interfaceuses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;type
  TAT_INFO = record
    JobTime: DWord;
    DaysOfMonth: DWord;
    DaysOfWeek: UCHAR;
    Flags: UCHAR;
    Command: PWideChar;
  end;  PAT_INFO = ^TAT_INFO;
  NET_API_STATUS = LongInt;  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;function NetScheduleJobAdd(ServerName: PWideChar; Buffer: PAT_INFO; var JobID: PDWord): NET_API_STATUS;stdcall;var
  Form1: TForm1;implementation
{$R *.DFM}
function NetScheduleJobAdd; external 'netapi32.dll' name 'NetScheduleJobAdd';procedure TForm1.Button1Click(Sender: TObject);
var
  ATInfo:PAT_Info;
  jobid:PDword;
begin
  (*这段程序是向"计划任务"添加一个每天3:15运行的任务*)
  getmem(atinfo,sizeof(TAt_info)); //分配内存
  getmem(jobid,sizeof(dword));  //分配内存
  atinfo^.jobtime:=3*60*60*1000+15*60*1000;//3:15,从0:00开始的毫秒数.
  atinfo^.DaysOfMonth:=4294967295;//每月的第$FFFFFFFF天,表示是每天
  atinfo^.DaysOfWeek:=255;//每周的第$FF天,表示每天
  atinfo^.command:='c:\showok.exe';//任务内容,执行程序 c:\showok.exe
  atinfo^.flags:=1;//JOB_RUN_PERIODICALLY,任务运行后不会被自动删除,不是一次性任务.
  if NetScheduleJobAdd(nil,atinfo,jobid)<>2 then //添加任务.
    showmessage('ok');
  freemem(jobid);
  freemem(atinfo);
end;end.

解决方案 »

  1.   

    unit insjob;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls;type
      TAT_INFO = record
        JobTime: DWord;
        DaysOfMonth: DWord;
        DaysOfWeek: UCHAR;
        Flags: UCHAR;
        Command: PWideChar;
      end;  PAT_INFO = ^TAT_INFO;
      NET_API_STATUS = LongInt;  TForm1 = class(TForm)
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;function NetScheduleJobAdd(ServerName: PWideChar; Buffer: PAT_INFO; var JobID: PDWord): NET_API_STATUS;stdcall;var
      Form1: TForm1;implementation
    {$R *.DFM}
    function NetScheduleJobAdd; external 'netapi32.dll' name 'NetScheduleJobAdd';procedure TForm1.Button1Click(Sender: TObject);
    var
      ATInfo:PAT_Info;
      jobid:PDword;
    begin
      (*这段程序是向"计划任务"添加一个每天3:15运行的任务*)
      getmem(atinfo,sizeof(TAt_info)); //分配内存
      getmem(jobid,sizeof(dword));  //分配内存
      atinfo^.jobtime:=3*60*60*1000+15*60*1000;//3:15,从0:00开始的毫秒数.
      atinfo^.DaysOfMonth:=4294967295;//每月的第$FFFFFFFF天,表示是每天
      atinfo^.DaysOfWeek:=255;//每周的第$FF天,表示每天
      atinfo^.command:='c:\showok.exe';//任务内容,执行程序 c:\showok.exe
      atinfo^.flags:=1;//JOB_RUN_PERIODICALLY,任务运行后不会被自动删除,不是一次性任务.
      if NetScheduleJobAdd(nil,atinfo,jobid)<>2 then //添加任务.
        showmessage('ok');
      freemem(jobid);
      freemem(atinfo);
    end;end.
      

  2.   

    补充:
    atinfo^.DaysOfMonth中从第0位到第30位分别表示每月第一天到第三十一天.$FFFFFFFF把所有位都置为1,则表示每一天.atinfo^.DaysOfWeek的含义相似.
      

  3.   

    那我如果想把这个任务添加到windows里的计划任务里,这段程序应该怎么实现呢?应该有个添加的winapi吧,
    我要怎么写呢