Re: vor runterfahren ein programm starten
Tach,
hier die Prozedure mit der man einen Neustart/Logoff abfangen kann.
Delphi-Quellcode:
Mit Win2k und XP kein Problem, wies mit anderen Systemen aussieht musst du probieren.
unit Unit1;
interface uses SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) CheckBox1: TCheckBox; // Nur zu Testzwecken... procedure FormClose(Sender: TObject; var Action: TCloseAction); private procedure WMQueryEndSession(var Message: TWMQueryEndSession); message WM_QUERYENDSESSION; public end; var Form1 : TForm1; implementation {$R *.DFM} //Die Message wird nur erhalten, wenn das System runtergefahren wird. procedure TForm1.WMQueryEndSession(var Message: TWMQueryEndSession); begin inherited; //wichtig // pack hier die Abfrage rein, ob das Backup fertig ist. // wenn das System neugestartet werden darf, dann setze Result auf true // ich hab das ganze hier mal mit ner checkbox gemacht. if form1.CheckBox1.Checked=true // Checkbox = true => Reboot abgebrochen then message.Result:=0 // EndSession = False else message.Result:=1; // EndSession = True end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin // Backupprozeduren oder soo.... end; end. Gruss Moori |
Re: vor runterfahren ein programm starten
Hallo
zuerst einmal:
Delphi-Quellcode:
gefunden bei euch in der Code-Library
type
TForm1 = class(TForm) private { Private-Deklarationen } procedure WMQUERYENDSESSION(var msg: TMessage); message WM_QUERYENDSESSION; public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.WMQUERYENDSESSION(var msg: TMessage); begin ShowMessage('Windows wird beendet.'); msg.Result := Integer(TRUE); // TRUE: darf weiter runterfahren; FALSE: nicht runterfahren end; mein OS: WinXP Es braucht nicht in 5 Sekunden abgeschlossen zu sein, da der Shutdownvorgang abgebrochen ist. Ich habe mein Programm gestartet, dann über [Start][Herunterfahren][Herunterfahren] Windows beendet. Es wurden ca. 10 Prozesse beendet, dann wurde der Shutdownvorgang abgebrochen. Ein Versuch den Vorgang (nach 2 Minuten) abzubrechen (shutdown - a in Kommandozeile) schlägt fehl mit "Das Herunterfahren des Systems konnte nicht abgebrochen werden, da das System zurzeit nicht heruntergefahren wird. P.S. Falls ich (wieder einmal) etwas nicht beachtet habe, sagt es mir bitte, bin noch Anfänger. Danke. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:18 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