AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Code in jedem Fall beim Beenden eines Programmes ausführen
Thema durchsuchen
Ansicht
Themen-Optionen

Code in jedem Fall beim Beenden eines Programmes ausführen

Ein Thema von kurtm1 · begonnen am 30. Jan 2006 · letzter Beitrag vom 30. Jan 2006
Antwort Antwort
kurtm1

Registriert seit: 12. Dez 2003
348 Beiträge
 
#1

Code in jedem Fall beim Beenden eines Programmes ausführen

  Alt 30. Jan 2006, 21:15
Gibt es irgendeine Möglichkeit die sicher stellt, dass ein bestimmter Code vor(beim) Beenden eines Programmes ausgeführt wird?

Dies ist vorallem im Zusammenhang mit dem Beenden des Programmes über 'externe' Quellen sprich TaskManager etc. gemeint.

thx
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Code in jedem Fall beim Beenden eines Programmes ausführ

  Alt 30. Jan 2006, 21:34
Hi,

Für das normale Beenden einer Anwendung kannst Du dir das Delphi-Referenz durchsuchenOnClose bzw. Delphi-Referenz durchsuchenOnCloseQuery Event Deines Forms anschauen.

Wenn Dein Prozess mit dem TaskManager "gewaltsam" beendet wird, dann wird dein Prozess nicht darüber benachrichtigt und dein Prozess wird sofort beendet.

mfG
mirage228
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Code in jedem Fall beim Beenden eines Programmes ausführ

  Alt 30. Jan 2006, 21:35
Der Taskmanager versucht doch auch zuerst, das Programm "normal" zu beenden, oder?

Und kann man nicht theoretisch irgendnen Hook setzen?
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von Rastaman
Rastaman

Registriert seit: 6. Jan 2005
Ort: Lübbecke
575 Beiträge
 
Turbo C++
 
#4

Re: Code in jedem Fall beim Beenden eines Programmes ausführ

  Alt 30. Jan 2006, 21:39
Zitat von 3_of_8:
Der Taskmanager versucht doch auch zuerst, das Programm "normal" zu beenden, oder?

Und kann man nicht theoretisch irgendnen Hook setzen?
Nicht aber, wenn der Prozess beendet wird. Dann is sofort Schicht im Schacht.
Chuck Norris has counted to infinity ... twice!
  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
 
#5

Re: Code in jedem Fall beim Beenden eines Programmes ausführ

  Alt 30. Jan 2006, 21:39
Zitat von 3_of_8:
Der Taskmanager versucht doch auch zuerst, das Programm "normal" zu beenden, oder?
"Task beenden" imho ja, aber "Prozess beenden" (killen) nicht.
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Code in jedem Fall beim Beenden eines Programmes ausführ

  Alt 30. Jan 2006, 21:41
Also wenn ich einen Prozess beenden mit dem TASKMGR, dann kommt erst nach ein paar Sekunden das "Sofort beenden" ja oder nein.

Sofort killen geht zumindest bei mir nicht.

Und wenn der Prozess eh nicht reagiert, dann kann man das mit dem Code vor dem Beenden gleich vergessen.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Code in jedem Fall beim Beenden eines Programmes ausführ

  Alt 30. Jan 2006, 21:44
wenn man mit TerminateProcess arbeitet wird nicht erst nachgefragt, dann ist der Prozess wenn die berechtigungen da sind einfach weg. Wenn noch eine Nachfrage kommt wurde zuvor versucht mit Messages zu beenden, denn dort kann man noch auf Antwort waren. Bei TerminateProcess wird einfach der Prozess aus dem Speicher entfernt und schluss ist (kannst ja mal versuchen mit meinem DesktopSwitch einen Prozess hart zu beenden, der verwendet TerminateProzess und da dürfte auch seitens des Betriebssystems keine weitere Nachfrage kommen).
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Antwort Antwort


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 03:12 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