![]() |
Vor dem Beenden eine Aktion ausführen?
Ich habe eine Applikation, die minimiert als Tray Icon gestartet wird und nur darauf wartet, bis es durch das Beenden von Windows geschlossen wird.
Dabei soll das Programm beim schießen, einen Registerschlüssel modifizieren. Ich habe es wie folgt versucht:
Delphi-Quellcode:
Leider ohne Erfolg. Wie könnte man dies anstellen?
uses registry;
{$R *.dfm} var regist : TRegistry; begin if Application.Terminated then begin regist := TRegistry.Create; regist.RootKey := HKEY_CURRENT_USER; regist.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Policies\System', true); regist.WriteInteger('DisableTaskMgr', 1); sleep(3000); end; end. |
Re: Vor dem Beenden eine Aktion ausführen?
Hi,
schreibs doch ins OnClose deiner MainForm...?!? Gruß Stephan :dance: :xmas: |
Re: Vor dem Beenden eine Aktion ausführen?
Ich weiß nicht, ob WIndows die prozesse ordnungsgemäß beendet, oder einfach "killt".
Falls sie Ordnungsgemäß beendet werden, kann du einfach z.B. ins OnCloseQuerry diese Abfrage ausführen. Was genau klappt bei dir nicht und wo rufst du den Code auf? Und für was das
Delphi-Quellcode:
Das friert nur die ganze Anwendung ein.
Sleep(3000);
|
Re: Vor dem Beenden eine Aktion ausführen?
Ich muß dazu sagen, daß das Fenster zu keiner Zeit geöffnet ist. Ich denke mal, daß das Ereignis OnClose sich nur auf das Schließen eines aktiven Fenster bezieht.
|
Re: Vor dem Beenden eine Aktion ausführen?
Sleep habe ich nur deswegen gesetzt, um ganz sicher zu gehen, daß der Wert auch wirklich geändert wurde.
|
Re: Vor dem Beenden eine Aktion ausführen?
Versuchs mal im finalization Abschnitt :
Delphi-Quellcode:
var
Form1: TForm1; regist: TRegistry; implementation {$R *.dfm} initialization // Wird vorher ausgeführt finalization // Wird nachher ausgeführt regist := TRegistry.Create; regist.RootKey := HKEY_CURRENT_USER; regist.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Policies\System', true); regist.WriteInteger('DisableTaskMgr', 1); regist.free; end. |
Re: Vor dem Beenden eine Aktion ausführen?
Wenn Windows runterfährt, oder es soll, dann schickt es erst an alle toplevel Fenster die Nachricht
![]() |
Re: Vor dem Beenden eine Aktion ausführen?
Dieser Link existiert leider nicht mehr.
|
Re: Vor dem Beenden eine Aktion ausführen?
Hmpf. Hättest du mal genauer hingekuckt, dann wäre dir aufgefallen, dass ich mich vertippt habe. Jetzt sollte er gehen. Eine Suche nach dem Stichwort in der DP sollte auch erfolgversprechend sein.
|
Re: Vor dem Beenden eine Aktion ausführen?
Ich habe jetzt alles in dem finalization-Abschitt eingefügt. Der Wert wird trotzdem nicht geändert. Leider!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:02 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz