spineditで時間を指定してradioboxで終了か再起動を指定し
Timerでその時間がこれば終了or再起させたいのですがうまくいきません
procedure TForm1.Button1Click(Sender: TObject);
var
a: Integer;
begin
a := SpinEdit1.value * 60000;
Timer1.Enabled := True;
Timer1.Interval := a;
Button1.Enabled := False;
RadioButton1.Enabled := False;
RadioButton2.Enabled := False;
SpinEdit1.Enabled := False;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if(RadioButton1.Checked = True)
then
begin
ExitWindowsEx(EWX_SHUTDOWN,0);
end
else
begin
ExitWindowsEx(EWX_REBOOT,0);
end
;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Timer1.Enabled := False;
Button1.Enabled := True;
RadioButton1.Enabled := True;
RadioButton2.Enabled := True;
SpinEdit1.Enabled := True;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Timer1.Interval := 0;
Timer1.Enabled := False;
end;
end.
このように書いたのですが時間を過ぎても終了、再起動しません・・・
ExitWindowsEx(EWX_SHUTDOWN,0);
の部分をWinExecでプログラムを起動するように書くと
ちゃんと時間通りに起動してくれるのですが・・・
NT系はExitWindowsEx()の前に privilege を設定しないとだめなのでは?
http://delphi.about.com/cs/adptips2003/a/bltip0503_5.htm