[ brenas @ 06.03.2005. 21:15 ] @
Interesuje me da li je moguce iskljuciti kompjuter preko Delphi aplikacije i ako je moguce kako se to radi.Ja sam probao uz pomoc jedne funkcije u Delphiju
(Windows.InitiateSystemShutdown) ali nisam uspeo.Ako je neko upucen u to neka mi pomogne, zamolio bih ga.!
[ bancika @ 06.03.2005. 21:34 ] @
imenjace :)
ovako stoje stvari: moze sa ExitWindowsEx ali da bi ugasio comp potrebno je da tvoja aplikacija ima "prava" da to uradi, inace se samo izloguje iz windowsa. ono sto ja (uspesno) korisim je
Code:

 ShellExecute(Application.Handle, nil, 'shutdown', '-s -t 0', '', SW_HIDE)

dodaj pre toga ShellAPI u uses listu
[ neor @ 07.03.2005. 06:43 ] @
Evo koda sa kojim osim shutdown mozes uraditi i restart, hibernate i logoff na win NT/2000/XP. Za Win9x ti ne treba onaj pocetni deo oko podesavanja privilegija vec samo ExitWindowsEx.
Code:
program off;

uses
  windows;

var
  TokenHandle,ReturnLength: Cardinal;
  NewState: TTokenPrivileges;

begin
  //'SeShutdownPrivilege' {SE_SHUTDOWN_NAME});
  if OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES, TokenHandle) then
  begin
    try
      NewState.PrivilegeCount := 1;
      LookupPrivilegeValue(nil, 'SeShutdownPrivilege', NewState.Privileges[0].Luid);
      NewState.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
      AdjustTokenPrivileges(TokenHandle, False, NewState, SizeOf(NewState), nil, ReturnLength);
    finally
      CloseHandle(TokenHandle);
    end;
  end;

  //Ostaviti jedan od sledecih redova
  //ExitWindowsEx(EWX_LOGOFF);     //0
  //ExitWindowsEx(EWX_SHUTDOWN);   //1
  //ExitWindowsEx(EWX_REBOOT);     //2
  //ExitWindowsEx(EWX_FORCE);      //4
  ExitWindowsEx(EWX_POWEROFF,0);   //8
  //ExitWindowsEx(EWX_FORCEIFHUNG);//16
  //SetSystemPowerState(False,False); // Hibernate

end.