Seite 1 von 2

befehl für shutdown

Verfasst: 02.05.2005 15:52
von zigapeda
Hallo

habe in der hilfe nix gefunden deshalb wollte ich fragen ob es einen befehl für das herunterfahren gibt. Danke schon mal im vorraus

Verfasst: 02.05.2005 15:58
von Laurin
Das Code-Archiv, dein Freund und Helfer :wink:

StandBy-Modus: http://www.purearea.net/pb/CodeArchiv/W ... StandBy.pb

Setup-Lib mit integriertem Befehl für Shutdown, StandBy, Abmelden etc: http://www.purearea.net/pb/download/use ... lib392.zip

Greetz Laurin

Verfasst: 02.05.2005 16:16
von ts-soft
Hier mal meine Version von Shutdown:

Code: Alles auswählen

#EWX_LOGOFF   = 0 
#EWX_SHUTDOWN = 1 
#EWX_REBOOT   = 2 
#EWX_FORCE    = 4 
#EWX_POWEROFF = 8 

Procedure Shutdown( flags.l )
  Privileges.TOKEN_PRIVILEGES
  OpenProcessToken_(GetCurrentProcess_(), 40, @hToken)
  Privileges\PrivilegeCount           = 1
  Privileges\Privileges[0]\Attributes = #SE_PRIVILEGE_ENABLED
  LookupPrivilegeValue_(0, "SeShutdownPrivilege", @Privileges\Privileges[0]\Luid)
  AdjustTokenPrivileges_(hToken, 0, @Privileges, 0, 0, 0)
  CloseHandle_(hToken)
  ExitWindowsEx_(flags, 0)
EndProcedure

;Beispiel: ACHTUNG Speichern vorm ausprobieren!!!
Shutdown( #EWX_REBOOT )
Ansonsten findest Du auf PureArea.net noch TS-Shutdown mit Source, eine komplette Anwendung, mit Ruhezustand, Zeitgesteuertem ausschalten usw.

Verfasst: 02.05.2005 16:27
von zigapeda
Ja ok muss ich nachher noch probieren (muss noch alle sachen sichern usw.) sag euch dann ob es geklapt hat aber ich will eigentlich nur einen chatserver programmieren der dann durch einen befehl den computer runterfährt

Hallo ts-soft

Verfasst: 16.11.2005 12:38
von laf_bln
Hallo ts-soft
Habe deine Shutdown Version Ausprobiert. Und finde sie ganz vernünftig. Jedoch sollten vor einem #EWX_REBOOT alle Prozesse durch #EWX_FORCE beendet werden.

Code: Alles auswählen

;Neues Beispiel! 
Shutdown( #EWX_FORCE + #EWX_REBOOT )
Da sonst wie in deinem Beispiel einige Programme zu Meckern anfangen.

Re: Hallo ts-soft

Verfasst: 16.11.2005 12:50
von ts-soft
laf_bln hat geschrieben:Hallo ts-soft
Habe deine Shutdown Version Ausprobiert. Und finde sie ganz vernünftig. Jedoch sollten vor einem #EWX_REBOOT alle Prozesse durch #EWX_FORCE beendet werden.
Man sollte eben das Beenden nicht ohne Grund erzwingen. Stattdessen ist es besser die anderen Programme vorher ordnungsgemäß zu Beenden (man kann auch per Registryeintrag schnelles herunterfahren aktivieren, dann meckern die nicht :mrgreen:).
Aber es ging doch sowieso nur darum, das man unter NT vorher Rechte anfordern muß, bevor man "ExitWindowsEx_" ausführt, ansonsten kann man nämlich nur W9x beenden.
Unter Windows 2003 Server mußte noch den Grund fürs beenden angeben, kann also sein, das es dort auch nicht so funzt, wie Du möchtest. Habs aber noch nicht testen können.

Verfasst: 16.11.2005 13:33
von Konne
Warum nicht einfach shutdown.exe starten?

Verfasst: 16.11.2005 13:43
von ts-soft
Konne hat geschrieben:Warum nicht einfach shutdown.exe starten?
Weil es die auch nicht unter jeder Windowsversion gibt. Ausserdem ist das starten von Fremdprogrammen IMHO meist die schlechteste Variante (gehört eher in ein Batchforum :mrgreen: )

Verfasst: 16.11.2005 17:05
von Konne
Nunja aber ich mein es istr auch die unter Windows Versions unabhängigste Variante. Und auserdem ist es so sehr schondende für den PC da er es ja IMMER so macht. Auserdem ist das andere da ihr Api benutzung auch Platformanhängig.

Verfasst: 16.11.2005 18:13
von ts-soft
Konne hat geschrieben:Nunja aber ich mein es istr auch die unter Windows Versions unabhängigste Variante
Wie, weil es das nur unter WinXP gibt?
Konne hat geschrieben: Und auserdem ist es so sehr schondende für den PC da er es ja IMMER so macht.
Wie, wenn Du Start/Computer ausschalten wählst, wird dieses Programm gestartet :mrgreen:, ich glaube, das ist selbst für Windows zu umständlich
Konne hat geschrieben: Auserdem ist das andere da ihr Api benutzung auch Platformanhängig.
Stimmt, aber Shutdown.exe gibts unter Linux auch nicht :mrgreen: