윈도 스케쥴러에 등록하여 특정 프로그램(여기서는 calc.exe)을 실행시키려고 하는데
안되고 있어요 델파이에 델자도 모르는 초보라서
3일동안 고민고민 하다가 도움을 받고 싶어서 올려봅니다.
윈도우 7, 델파이 7 사용합니다.
알고 싶은것을 다시 정리하면
1.아래 코드가 제가 원하는 취지에 맞는 것인가요?
2.맞다는 가정하에 실행이 되었다면, 윈도우 작업 스케줄러에 등록이 되고
12시 30분에 calc.exe이 실행되야 하는 거죠? 근대 왜 안될까요 -0-;;
실행을 시키면 돌아가긴 하는데 제대로 되고 있는지 알수가 없네요..ㅠㅠ
무한한 가르침 감사히 받겠습니다. (__)
================ 여기서 부터 제 소스입니다..=================
unit Schedule;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
type
NET_API_STATUS = DWORD;
type
TATInfo = record
JobTime: DWORD;
DaysOfMonth: DWORD;
DaysOfWeek: UCHAR;
Flags: UCHAR;
Command: LPWSTR;
end;
const JOB_RUN_PERIODICALLY = $01;
function NetScheduleJobAdd(
Servername: LPCWSTR;
var Buffer: TATInfo;
var JobId: DWORD
): NET_API_STATUS; stdcall; external 'Netapi32.dll'
name 'NetScheduleJobAdd';
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
var
at: TATInfo;
Flag: DWORD;
ComName: WideString;
begin
at.JobTime := (12 * 3600 + 30 * 60) * 1000;
at.DaysOfMonth := 0;
at.DaysOfWeek := 0;
at.Flags := JOB_RUN_PERIODICALLY;
at.Command := 'C:\Windows\System32\calc.exe';
NetScheduleJobAdd(PWideChar(ComName), at, Flag);
end;
end.