Delphi - объектно-ориентированный язык программирования, разработанный компанией Borland в 1995 году. Он основан на языке программирования Pascal, но имеет более расширенные возможности и добавлены новые функции.
Delphi является интегрированной средой разработки (IDE), которая позволяет разрабатывать программное обеспечение для различных платформ, включая Windows, macOS, Android и iOS. Delphi достигает многоплатформенности с помощью...
{ Diese Methode funktioniert nur auf Windows NT/2000/XP } { Works only on Windows NT/2000/XP systems } functionTimedShutDown(Computer: string
; Msg: string
; Time: Word; Force: Boolean; Reboot: Boolean): Boolean; var
rl: Cardinal; hToken: Cardinal; tkp: TOKEN_PRIVILEGES; begin
//get user privileges to shutdown the machine, we are talking about win nt and 2k here if
not
OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or
TOKEN_QUERY, hToken) then
ShowMessage('Cannot open process token.') else
begin
if
LookupPrivilegeValue(nil
, 'SeShutdownPrivilege', tkp.Privileges[0].Luid) then
begin
tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED; tkp.PrivilegeCount := 1; AdjustTokenPrivileges(hToken, False, tkp, 0, nil
, rl); if
GetLastError <> ERROR_SUCCESS then
ShowMessage('Error adjusting process privileges.'); end
else
ShowMessage('Cannot find privilege value.'); end
; Result := InitiateSystemShutdown(PChar(Computer), PChar(Msg), Time, Force, Reboot) end
; //Start shut down procedure
TForm1.Button1Click(Sender: TObject); begin
if
not
TimedShutDown('\computername', 'you have to shutdown', 30, true, true) then
ShowMessage('function failed...'); end
; //Abort shut down procedure
TForm1.Button2Click(Sender: TObject); begin
AbortSystemShutdown('\computername'); end
;