AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Vor dem Beenden eine Aktion ausführen?
Thema durchsuchen
Ansicht
Themen-Optionen

Vor dem Beenden eine Aktion ausführen?

Ein Thema von mlspider · begonnen am 26. Nov 2004 · letzter Beitrag vom 26. Nov 2004
Antwort Antwort
Seite 1 von 2  1 2      
mlspider

Registriert seit: 22. Okt 2003
Ort: Berlin
661 Beiträge
 
Delphi 7 Enterprise
 
#1

Vor dem Beenden eine Aktion ausführen?

  Alt 26. Nov 2004, 14:37
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:
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.
Leider ohne Erfolg. Wie könnte man dies anstellen?
Mario
Handbücher haben einen hohen Heizwert!!!

http://geprellte-ebay-kaeufer.de
  Mit Zitat antworten Zitat
Benutzerbild von Steve
Steve

Registriert seit: 2. Mär 2004
Ort: Würzburg
730 Beiträge
 
Delphi 2006 Personal
 
#2

Re: Vor dem Beenden eine Aktion ausführen?

  Alt 26. Nov 2004, 14:39
Hi,

schreibs doch ins OnClose deiner MainForm...?!?

Gruß
Stephan
Stephan B.
Wer andern eine Grube gräbt ist Bauarbeiter!
Wer im Glashaus sitzt, sollte sich lieber im Dunkeln ausziehen!
Außerdem dieser Satz kein Verb...
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Vor dem Beenden eine Aktion ausführen?

  Alt 26. Nov 2004, 14:39
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
Sleep(3000); Das friert nur die ganze Anwendung ein.
  Mit Zitat antworten Zitat
mlspider

Registriert seit: 22. Okt 2003
Ort: Berlin
661 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Vor dem Beenden eine Aktion ausführen?

  Alt 26. Nov 2004, 14:40
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.
Mario
Handbücher haben einen hohen Heizwert!!!

http://geprellte-ebay-kaeufer.de
  Mit Zitat antworten Zitat
mlspider

Registriert seit: 22. Okt 2003
Ort: Berlin
661 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Vor dem Beenden eine Aktion ausführen?

  Alt 26. Nov 2004, 14:42
Sleep habe ich nur deswegen gesetzt, um ganz sicher zu gehen, daß der Wert auch wirklich geändert wurde.
Mario
Handbücher haben einen hohen Heizwert!!!

http://geprellte-ebay-kaeufer.de
  Mit Zitat antworten Zitat
Nightshade

Registriert seit: 7. Jan 2003
Ort: Menden
192 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Vor dem Beenden eine Aktion ausführen?

  Alt 26. Nov 2004, 15:07
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.
Christian
Killing for peace is like fucking for virginity

Nightshade
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Vor dem Beenden eine Aktion ausführen?

  Alt 26. Nov 2004, 15:08
Wenn Windows runterfährt, oder es soll, dann schickt es erst an alle toplevel Fenster die Nachricht MSDN-Library durchsuchenWM_QUERYENDSESSION. Dort kann man dann noch was machen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
mlspider

Registriert seit: 22. Okt 2003
Ort: Berlin
661 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Vor dem Beenden eine Aktion ausführen?

  Alt 26. Nov 2004, 15:14
Dieser Link existiert leider nicht mehr.
Mario
Handbücher haben einen hohen Heizwert!!!

http://geprellte-ebay-kaeufer.de
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Vor dem Beenden eine Aktion ausführen?

  Alt 26. Nov 2004, 15:16
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.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
mlspider

Registriert seit: 22. Okt 2003
Ort: Berlin
661 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Vor dem Beenden eine Aktion ausführen?

  Alt 26. Nov 2004, 15:22
Ich habe jetzt alles in dem finalization-Abschitt eingefügt. Der Wert wird trotzdem nicht geändert. Leider!
Mario
Handbücher haben einen hohen Heizwert!!!

http://geprellte-ebay-kaeufer.de
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:55 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 by Thomas Breitkreuz