|
Shutdown под XP
Как это сделать на Delphi?
Вот отрыл какой-то пример, но он делает только смену пользователя:
procedure TForm1.TimerTimer(Sender: TObject);
Function SetPrivilege(aPrivilegeName: String; aEnabled: Boolean ): Boolean;
Var TPPrev,
TP: TTokenPrivileges;
Token: THandle;
dwRetLen: DWord;
Begin
Result:=False;
if not OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY,
Token) then Exit;
TP.PrivilegeCount:=1;
IF LookupPrivilegeValue(nil,PChar(aPrivilegeName),TP. Privileges[0].LUID ) then
Begin
IF aEnabled then TP.Privileges[0].Attributes:=SE_PRIVILEGE_ENABLED
else TP.Privileges[0].Attributes:=0;
dwRetLen:= 0;
Result:=AdjustTokenPrivileges(Token,False,TP,SizeO f(TPPrev),TPPrev,dwRetLen);
End;
CloseHandle(Token);
End;
begin
if TimeToStr(Time) = TimeEdit.Text then
begin
SetPrivilege('SeShutdownPrivilege',True);
ExitWindows(EWX_SHUTDOWN or EWX_FORCE,0);
end;
end;
|