Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Ereignis beim Shutdown (https://www.delphipraxis.net/21126-ereignis-beim-shutdown.html)

Dannyboy 28. Apr 2004 10:58


Ereignis beim Shutdown
 
Hallo zusammen,
mein Dateiverschlüsselungsprogramm läuft permanent im Hintergrund
und soll automatisch kurz vor dem Herunterfahren des PCs
einen Meldungsdialog auf dem Bildschirm ausgeben, welcher dann
vom Benutzer weitere Anweisung erwartet. Man kann hier z.B. bestimmte
Ordner auswählen deren Dateien dann verschlüsselt werden.
Mein PC (Windows XP Prof.) MUSS solange warten, bis mein Programm seine
Aufgaben erfüllt hat!
Also:
- Wie erfahre ich, dass der Computer gerade heruntergefahren wird :gruebel:
- Wie halte ich dieses Ereignis auf, bis mein Programm seine Aufgaben beendet hat :gruebel:
Greetz

DANNYBOY

Luckie 28. Apr 2004 11:20

Re: Ereignis beim Shutdown
 
Wird die Session beended schickt Windows erst ein MSDN-Library durchsuchenWM_QUERYENDSESSION und dann zum Schluss noch mal ein MSDN-Library durchsuchenWM_ENDSESION. Ersteres wäre der richtige Zeitpunkt, um noch was auszuführen. Aber all zu viel würde ich da nicht mehr machen, ich weiß nicht, wie geduldig Windows da noch ist.

alcaeus 28. Apr 2004 11:29

Re: Ereignis beim Shutdown
 
Ich weiß nicht genau wann das ausgelöst wird, aber Windows "schießt" nach einer Weile alle Programme ab, die nicht beendet wurden. Zum Beispiel: Das Programm meiner kabellosen Maus zeigt beim Herunterfahren eine Warnung an, falls die Batterien schwach sind. Klicke ich den Dialog nicht weg so versucht Windows (XP Pro), den Prozess zu beenden. Wie viel man noch vor dem Herunterfahren machen kann weiß ich nicht, denn wenn ich den PC herunterfahre dann sollte das jetzt geschehen, und nicht in 10 Minuten, insofern hat Microsoft mit der Strategie schon Recht.

Killer 28. Apr 2004 11:36

Re: Ereignis beim Shutdown
 
Die Zeit, bis die Prozesse "gezwungen" werden zu schließen, kann man in der Registry festlegen. Normal liegt sie bei 20 Sekunden. Aber ich glaube nicht dass dir die Zeit ausreichen wird :roll:

Falls du mehr darüber wissen willst, hier n Link zum Thema: Link

Dannyboy 28. Apr 2004 11:54

Re: Ereignis beim Shutdown
 
O.k., danke alcaeus, danke Luckie.
Die Nachricht WM_QUERYENDSESSION werde ich dann auf jeden Fall abfangen, so weiss ich
wann das Betriebssystem herunterfährt.
Bleibt nur noch das Anhalten: :mrgreen:
Manchmal wartet Windows doch mit dem Herunterfahren, weil ein bestimmer Prozess
nicht beendet werden kann. Es erscheint ein Dialog, auf dem man als User dann
"ignorieren", "Prozess beenden" oder "warten" auswählen kann. Bevor der User allerdings
keines dieser Buttons klickt, fährt das System, meiner Erfahrungen nach, nicht hinunter.
Und exakt diese Funkionalität benötige ich für mein Programm.
Beim Versuch den PC herunter zufahren soll mein Proggy bestimmte Ordner verschlüsseln und
sobald dieser Prozess beendet ist, darf das System herunterfahren.
Also, geht da was? :gruebel:

alcaeus 28. Apr 2004 11:57

Re: Ereignis beim Shutdown
 
Den Dialog gibts bei meinem WindowsXP nicht mehr, falls sich ein Programm nicht beendet so bringt Windows einen Dialog mit ProgressBar, und nach 10 Sekunden ist die ProgressBar ganz oben und das Programm fliegt raus. Der einzige Button drauf ist "Programm sofort beenden", das heißt da geht nichts mehr...

Dannyboy 28. Apr 2004 11:59

Re: Ereignis beim Shutdown
 
Verdammt, ich brauche diese Funktionalität unbedgint!!! Das muss gehen! :twisted:
Und wenn mir jemand erklärt, wie mein Programm das XP derart abstürzen lässt, dass XP
nicht runterfahren kann, ist mir das auch Recht. :mrgreen:

fiasko 28. Apr 2004 12:04

Re: Ereignis beim Shutdown
 
Ähm du brauchst doch nur auf die WM_QUERYENDSESSION den Wert 0 zurückliefern, dann wird das ganze abgebrochen - steht zumindest so in den MSDN...

alcaeus 28. Apr 2004 12:06

Re: Ereignis beim Shutdown
 
Heißt das, dass ich das Herunterfahren des Systems abbrechen kann? :shock:

Luckie 28. Apr 2004 12:07

Re: Ereignis beim Shutdown
 
Da nach musst du aber selber die Session beenden, sonst müsste der Benutzer ja noch mal auf "Beenden" klicken. Und dazu musst du dir merken, ob er sich nur abmeldet, einen Neustart macht oder ganz runterfährt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:42 Uhr.
Seite 1 von 2  1 2      

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