Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi rechner komplett herunterfahren (https://www.delphipraxis.net/15306-rechner-komplett-herunterfahren.html)

brändy 26. Jan 2004 10:34


rechner komplett herunterfahren
 
Hallo!
kann mir hier jemand sagen wie ich meinen rechner(windows xp) mit delphi(delphi 6 enterprise)
herunterfahren kann? ich hab es schon mit vielen befehlen ausprobiert, aber immer hat sich der rechner nur abgemeldet.

Luckie 26. Jan 2004 10:38

Re: rechner komplett herunterfahren
 
Kuck mal in die Code-Lib. Link ganz oben unter dem Banner.

Btw.
Zitat:

rechner(windows xp) mit delphi(delphi 6 enterprise) herunterfahren
Also ich mache das immer mit einen Klick auf Start und dem entsprechenden Dialog oder alternativ nehme ich ein Programm dafür. Nur mit Delphi habe ich es noch nie probiert. :?

WtF 26. Jan 2004 10:42

Re: rechner komplett herunterfahren
 
Unter XP gibt es doch den "Shutdown" befehl - ich kann dir aber nichts genaueres sagen da ich Win2k benutze. Ich hab da glaube auch irgendwo noch ne unit rumfliegen mit der man das machen kann, man muss ja beachten ob es ein NT oder 9x system ist. Also wenn das prog noch auf anderen rechnern laufen soll dann musst du das vorher auch prüfen.
Mfg

Matze 26. Jan 2004 10:43

Re: rechner komplett herunterfahren
 
Herzlich willkommen in der DP!

AbmeldenAbmelden



[Edit]Zu langsam, kommt davon, wenn man in der CodeLib erst mal nach dem falschen Begriff sucht :oops: [/Edit]

MathiasSimmack 26. Jan 2004 10:45

Re: rechner komplett herunterfahren
 
@Luckie: Du weißt doch ganz genau, wie brändy das meint. :mrgreen:

@WtF: Es gibt einen allgemein gültigen Befehl, mit dem man das OS herunterfahren kann (oder auch neu starten, usw.). Irgendwelche Befehle über die Kommandozeile aufzurufen entfällt damit also. Die Code-Lib enthält das passende Beispiel, das auch auf besondere Gegebenheiten (NT-Systeme) Rücksicht nimmt.

Was man machen könnte, wenn man den Standarddialog von Windows sehen will, wäre ein WM_CLOSE an das Fenster "Shell_TrayWnd" zu schicken. Das funktioniert von 95 bis XP, fährt den Rechner aber nicht herunter sondern zeigt (wie gesagt) nur den Dialog von "Start -> Beenden" an.

delphi_newbie_123 26. Jan 2004 13:25

Re: rechner komplett herunterfahren
 
hi
Delphi-Quellcode:
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;








Delphi-Quellcode:
MyExitWindows(EWX_POWEROFF or EWX_FORCE);


also bei mir klappts wunderbar ;)

MathiasSimmack 26. Jan 2004 14:47

Re: rechner komplett herunterfahren
 
Das ist sehr schön, aber warum postest du den Code, wo er doch in der Code-Lib steht und durch einen simplen Klick auf Matzes Link gefunden werden kann? Ich hab´s probiert, es sind nur 2 (in Worten: zwei) Suchergebnisse, die ich da sehe.

delphi_newbie_123 26. Jan 2004 17:53

Re: rechner komplett herunterfahren
 
weiss nicht wies geht
und so hat ers schneller zu hand ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:57 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz