Hallo,
ich verwende folgenden Code um mitzubekommen ob Windows runter gefahren wird, um dann noch Dateien zu speichern:
Delphi-Quellcode:
{ ... }
private
{ Private-Deklarationen }
Windows_Session_End : Boolean;
procedure WMQueryEndSession(var Msg: TWMQueryEndSession); message WM_QueryEndSession;
public
{ Public-Deklarationen }
end;
{ ... }
procedure TMainForm.WMQueryEndSession(var Msg: TWMQueryEndSession);
begin
//Windows erlauben zu beenden
Msg.Result := 1;
//Wenn Windows beendet wird, dann Variable auf true setzen
Windows_Session_End := true;
inherited;
end;
procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
//Verbindung beenden
//Inidatei schreiben
//ListViews in "Monitor.xml" speichern
end;
procedure TMainForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
//Beenden erlauben/verweigern
CanClose := Windows_Session_End or
(MessageDlg(Msg1, mtConfirmation, [mbYes, mbNo], 0) = mrYes);
end;
Also beim Schliessen werden im OnClose noch Dateien (Ini-Dateien,
XML-Dateien) gespeichert.
Bei XP hat dies fehlerfrei funktioniert. Bei Win7 scheint es so, als würde mir Win7 den Boden unter den Füßen wegziehen und ich komm gar nicht mehr zum speichern. Jedenfalls hab ich keine gespeicherten Dateien.
Muss man für Win7 etwas spezielles beachten?
(Oder ich hab schon von vorn herein einen Fehler drin, der bei WinXP nicht auffiel)
mfg
Helmi
>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<