| 

.NET C# Java Javascript Exception

3
Wie kann ich aus einer .NET-Anwendung heruas das betriebssystem zeitverzögert herunterfahren lassen? Ziel ist es, dem Anwender noch ausreichend Zeit zum Sichern von Dokumenten einzuräumen.
19.02.2011
Neha 31 1 2
3 Antworten
5
Prinzipiell gibt es dafür einige verschiedene Möglichkeiten:
20.02.2011
Golo Roden 2,7k 3 9
3
Z.B. unter Verwendung eines Timer
System.Diagnostics.Process.Start("cmd.exe /k shutdown -f -s");
19.02.2011
Joachim 3,1k 4 9
Wenn Du Wert auf Sicherheit legst, dann solltest Du möglicherweise vorher noch irgendwie prüfen, welche Programme da wirklich ausgeführt werden. Also ob cmd.exe auch wirklich die Eingabeaufforderung ist und ich würde wenigstens noch ein ".exe" an den shutdown-Befehl anhängen, damit es keine Verwirrung gibt, falls es eine "shutdown.bat" oder "shutdown.cmd" auf dem System gibt.
Torsten Weber 19.02.2011
Quatsch! Eine 100%ige Sicherheit gibt es nicht. Und ich prüfe auch nicht jede einzelne Komponente vor der Benutzung. Dazu hat man in der Regel einen Virenscanner.
Joachim 20.02.2011
Erstens habe ich nicht geschrieben, dass er es unbedingt machen muss, sondern nur drauf hingewiesen und zweitens habe ich nicht behauptet, dass er dadurch 100%ige Sicherheit erhält. Ob das Quatsch ist, bin ich mir nicht so sicher.
Torsten Weber 22.02.2011
0
Kleiner Tip: Wenn nicht unbedingt nötig, niemals den Parameter /f bzw. das Flag EWX_FORCE verwenden ("nötig" heisst: "herunterfahren ist wichtiger als alles andere"). Ansonsten werden evtl. wichtige Prozesse einfach gekillt.

Wir hatten mal ne Anwendung die MS Access Datenbanken verwendete. Entwickler Oberschlau spezifiziert EWX_FORCE. Mit der Folge, dass die Kunden das System Abends normal heruntergefahren haben und mit 30%iger Wahrscheinlichkeit am nächsten Morgen beim Starten eine kaputte Datenbank hatten. War übrigens ein schöner Beweis für alle die nicht glaubten das Access nicht ACID-konform war :-)
20.02.2011
Andi 151 5

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH