Problem sa kodom za gasenje

1

Problem sa kodom za gasenje

offline
  • Pridružio: 24 Feb 2007
  • Poruke: 167
  • Gde živiš: Babusnica

Zasto ovaj kod nece da radi u Delphi-ju 4?
function WindowsExit(RebootParam: Longword): Boolean; var    TTokenHd: THandle;    TTokenPvg: TTokenPrivileges;    cbtpPrevious: DWORD;    rTTokenPvg: TTokenPrivileges;    pcbtpPreviousRequired: DWORD;    tpResult: Boolean; const    SE_SHUTDOWN_NAME = 'SeShutdownPrivilege'; begin    if Win32Platform = VER_PLATFORM_WIN32_NT then    begin      tpResult := OpenProcessToken(GetCurrentProcess(),        TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY,        TTokenHd) ;      if tpResult then      begin        tpResult := LookupPrivilegeValue(nil,                                         SE_SHUTDOWN_NAME,                                         TTokenPvg.Privileges[0].Luid) ;        TTokenPvg.PrivilegeCount := 1;        TTokenPvg.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;        cbtpPrevious := SizeOf(rTTokenPvg) ;        pcbtpPreviousRequired := 0;        if tpResult then          Windows.AdjustTokenPrivileges(TTokenHd,                                        False,                                        TTokenPvg,                                        cbtpPrevious,                                        rTTokenPvg,                                        pcbtpPreviousRequired) ;      end;    end;    Result := ExitWindowsEx(RebootParam, 0) ; end; Usage: //Shutdown WindowsExit(EWX_POWEROFF or EWX_FORCE) ; //Reboot Windows WindowsExit(EWX_REBOOT or EWX_FORCE) ;



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Strog  Male
  • Stručni saradnik
    Web programiranje
  • Bojan Kopanja
  • Web & Mobile developer @ ZeusSoftware
  • Pridružio: 26 Jul 2003
  • Poruke: 2597
  • Gde živiš: Stara Pazova

Pa ne znam... Delphi 4 je stvarno star delphi i vrlo je moguce da u njemu nema nesto od potrebnih funkcija posto se ovde radi o kodu za gasenje Win200-XP-a za koji nisam siguran ni da su postojali kad je bio D4 Very Happy.

Nabavi bar Delphi 7 koji je po mom skromnom misljenju ( a i misljenju mnogih drugih, mnogo kompetentnijih ljudi od mene ) najbolji Delphi pre .NET-a.

Kod mene ovaj kod radi bez greske i u Delphiju 7 i u Turbo Delphiju!



offline
  • Srđan Tot
  • Pridružio: 12 Jul 2005
  • Poruke: 2483
  • Gde živiš: Ljubljana

Nemam instaliran Delphi 4 da bih mogao da vidim sta je... a i ti nisi rekao nista o problemu?

Da li se program iskompajlira? Da li funkcija frati neku gresku? Da li dobijes av?

Vrlo je moguce da koristis neke Win API funkcije i konstante koje nisu postojale kada je napravljen Delphi 4.

Dopuna: 14 Apr 2007 15:02

@Strog:
Pretece me za stotinku Smile

offline
  • Pridružio: 24 Feb 2007
  • Poruke: 167
  • Gde živiš: Babusnica

Kompejlira se, ne prijavljuje gresku, ali nece da radi.

offline
  • Emil Beli
  • Pridružio: 03 Jan 2005
  • Poruke: 2990
  • Gde živiš: Beograd

dodjes kursorom na liniju ispod Begin, udaris F5. Linija se zacrveni, onda startujes program sa F9, i kad stane na toj liniji, ides F8 liniju po liniju...

Ako ne uradis to, onda jedino da bacis pasulj na ogledalce i izgovaras charobne rechi.

offline
  • Pridružio: 08 Jan 2007
  • Poruke: 279
  • Gde živiš: Srbija

Probaj, Windows API:
//reboot windows ExitWindowsEx(EWX_REBOOT, 0) ; //shut down windows ExitWindowsEx(EWX_SHUTDOWN, 0) ; // log off and prompt for login ExitWindowsEx(EWX_LOGOFF, 0) ;

offline
  • Pridružio: 04 Sep 2003
  • Poruke: 24135
  • Gde živiš: Wien

Da bi ti Windows dodelio privilegije koje trazis u tom parcetu koda, moras da budes ulogovan kao admin na sistemu.

Daj i ostatak koda, odakle pozivas ovu funkciju, da vidimo da nije tamo greska.

@loshmi_sr
Pa upravo je to gore koristio. Ne mozes tek tako da pozoves te API funkcije, moras prvo da obezbedis privilegiju tokenu (funkciji ili proceduri u kojoj pozivas taj API).

offline
  • Pridružio: 08 Jan 2007
  • Poruke: 279
  • Gde živiš: Srbija

@bobby
Ispravka, u pravu si, mislio sam na ovo:
... uses ShellApi; ... ShellExecute(Handle, 'Open', PChar('shutdown'), PChar('-s -t 00'), nil, SW_HIDE);

offline
  • Pridružio: 24 Feb 2007
  • Poruke: 167
  • Gde živiš: Babusnica

Hebih da pozivam shutdown, nervira me ono prozorce.

offline
  • Pridružio: 13 Apr 2007
  • Poruke: 452
  • Gde živiš: Beograd

Meni neradi u Delphi 7!!!!Neprepoznaje 'Usage'!!!!

function WindowsExit(RebootParam: Longword): Boolean; var    TTokenHd: THandle;    TTokenPvg: TTokenPrivileges;    cbtpPrevious: DWORD;    rTTokenPvg: TTokenPrivileges;    pcbtpPreviousRequired: DWORD;    tpResult: Boolean; const    SE_SHUTDOWN_NAME = 'SeShutdownPrivilege'; begin    if Win32Platform = VER_PLATFORM_WIN32_NT then    begin      tpResult := OpenProcessToken(GetCurrentProcess(),        TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY,        TTokenHd) ;      if tpResult then      begin        tpResult := LookupPrivilegeValue(nil,                                         SE_SHUTDOWN_NAME,                                         TTokenPvg.Privileges[0].Luid) ;        TTokenPvg.PrivilegeCount := 1;        TTokenPvg.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;        cbtpPrevious := SizeOf(rTTokenPvg) ;        pcbtpPreviousRequired := 0;        if tpResult then          Windows.AdjustTokenPrivileges(TTokenHd,                                        False,                                        TTokenPvg,                                        cbtpPrevious,                                        rTTokenPvg,                                        pcbtpPreviousRequired) ;      end;    end;    Result := ExitWindowsEx(RebootParam, 0) ; end;

// <===========================;
Usage:
// <===========================;
Shutdown
WindowsExit(EWX_POWEROFF or EWX_FORCE) ;

//Reboot Windows
WindowsExit(EWX_REBOOT or EWX_FORCE) ;




[mod by bobby] postavio sam CODE tagove

Ko je trenutno na forumu
 

Ukupno su 3289 korisnika na forumu :: 60 registrovanih, 6 sakrivenih i 3223 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 20624 - dana 04 Apr 2026 04:18

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: 04bokibole, 357magnum, AC-DC, ALEKSICMILE, Aristotle2002, Askerland, Avalon015, avijacija, bokicacar, bpvl, Bvp, Cigi, CrveniSolaris, cvrle312, DankoZemun, Denaya, Ercomero, eulereix, Glavonja049, HrcAk47, Jeremiah, knutveliki, LjubisaR, luka35, Marko Marković, MarkoMarkovic86, mat, mean_machine, Milan A. Nikolic, milanpb, milenko crazy north, Miler88, mnn2, Mrav Obrad, Nepopravljivi, Nikola9223, Nikolajevic, nixos, Nobunaga, Permaldar, RajkoB, rikirubio, Sava89, SD izvidjac, stalja, strazar, SUPERTUKANO, Tihi86, tomo2, ujke, v82, vaci, vazduh, VJ, Vlada78, Volfero, vukovi, wizzardone, Zavulon, zoran77