kako da iskljucim kompjuter preko Delphi aplikacije

  • 2 odgovora
  • 4.457 pregleda
kako da iskljucim kompjuter preko Delphi aplikacije 06.03.2005. u 21:15 · pre 263 meseci #1
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.!
Re: kako da iskljucim kompjuter preko Delphi aplikacije 06.03.2005. u 21:34 · pre 263 meseci #2
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
Potpis
Ride the rainbow, crack the sky

DIY gitare, pojacala i efekti www.diy-fever.com
Re: kako da iskljucim kompjuter preko Delphi aplikacije 07.03.2005. u 06:43 · pre 263 meseci #3
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.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme