AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Programmprozess läuft weiter, obwohl "Windows"-Kreuz gedrück

Programmprozess läuft weiter, obwohl "Windows"-Kreuz gedrück

Ein Thema von litotes · begonnen am 26. Jul 2007 · letzter Beitrag vom 9. Okt 2010
Antwort Antwort
Seite 1 von 3  1 23   
litotes

Registriert seit: 12. Feb 2007
33 Beiträge
 
Delphi 7 Professional
 
#1

Programmprozess läuft weiter, obwohl "Windows"-Kre

  Alt 26. Jul 2007, 22:00
Hallo,

folgendes Problem: Meine Anwendung hat einen programmierten Ende-Button, der auch tadellos funktioniert.

Aber wenn man auf das Windows-eigene Beenden klickt (Kreuz rechts oben), dann schließt zwar mein Programm,
der Prozess läuft aber weiter. Was deswegen schlecht ist, weil ich einen Mutex eingebaut habe, der einen
Doppelstart verhindert.
Wenn aber der Prozess noch läuft, lässt sich mein Programm demnach nicht mehr starten,
obwohl es ja scheinbar geschlossen ist.

Eine Forumssuche hat leider nichts gebracht. Details zum Programm reiche ich gerne nach,
falls gebraucht, sie sollten aber - da das doch ein Windows-Prozess ist - nichts damit zu tun haben, oder??

Wer hat eine Idee, woran das liegen könnte?

Vielen Dank für die Hilfe schon mal,

litotes

/edit: Der "vergessene" Prozess im Taskmanager bleibt übrigens nicht immer drin, manchmal beendet er auch sauber...
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
16.914 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Programmprozess läuft weiter, obwohl "Windows"

  Alt 26. Jul 2007, 22:05
Hast du evtl. noch einige Funktionen oder Threads laufen so das der Prozess die "Endabarbeitung" nicht durchfühen kann?
Sind irgendwelche Verbindungen (DB/ActiveX/OpenGL/...) aktiv die (in eingebundenen DLL's) u.U. nicht beendet werden können?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
litotes

Registriert seit: 12. Feb 2007
33 Beiträge
 
Delphi 7 Professional
 
#3

Re: Programmprozess läuft weiter, obwohl "Windows"

  Alt 26. Jul 2007, 22:09
Hallo,

eben nicht: keine dlls eingebunden, keine Datenbankverbindung, usw.

Es werden zwar Programme gestartet, wie Word, Adobe Reader, IE, usw.,
aber der Prozess bleibt auch schon nach Klicken des Kreuzes im ersten Schirm hängen,
wenn es diese Formulare und Aktionen noch gar nicht gibt, da sie dynamisch während
der Laufzeit erzeugt werden...


litotes
  Mit Zitat antworten Zitat
Whookie

Registriert seit: 3. Mai 2006
Ort: Graz
422 Beiträge
 
Delphi 10.3 Rio
 
#4

Re: Programmprozess läuft weiter, obwohl "Windows"

  Alt 26. Jul 2007, 22:37
Verwendest Du irgentwelche Schleifen, die nicht enden _könnten_ und in denen Du ProcessMessages aufrufst?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie
(Moderator)

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

Re: Programmprozess läuft weiter, obwohl "Windows"

  Alt 26. Jul 2007, 22:46
Was steht in OnClose, OnCloseQuery, OnDestroy?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.262 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Programmprozess läuft weiter, obwohl "Windows"

  Alt 26. Jul 2007, 22:47
Moin litotes,

und noch eine Möglichkeit:
Erzeugst du vielleicht eine grössere Menge von Objekten, so dass das Aufräumen einfach viel Zeit in Anspruch nimmt, bevor sich der Prozess beendet?
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
16.914 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: Programmprozess läuft weiter, obwohl "Windows"

  Alt 26. Jul 2007, 22:48
Starte doch die App von der IDE mit Debug-DCU's und drück mal nach ein paar Sekunden "unsichtbarkeit" den Pause-Button und schau mal wo du landest.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
litotes

Registriert seit: 12. Feb 2007
33 Beiträge
 
Delphi 7 Professional
 
#8

Re: Programmprozess läuft weiter, obwohl "Windows"

  Alt 27. Jul 2007, 09:18
Guten Morgen,

erstmal vielen Dank für die vielen Vorschläge. Im Einzelnen:

1. es gibt kein onclose, kein onclosequery, nur ein destroy:
Delphi-Quellcode:
  If HotKeySet then
      UnRegisterHotKey(Self.Handle, HotKeyID);
2. Es gibt 2x processMessages, einmal in einer Dateisuche, und dann in einem Test,
ob ein Programm läuft. Aber auch diese Formulare werden erst zu einem Zeitpunkt erzeugt,
an dem das Programm schon längst über das Kreuz beendet ist (eben nach erstem Schirm)

3. Ich erzeuge kaum Objekte (siehe 2), denn jedes Formular bis auf die ersten 3 werden erst
zur Laufzeit jeweils erzeugt und dann immer mit
Screen.ActiveForm.Release; freigegeben.

4. Wenn ich nach ein paar Sekunden der "Unsichtbarkeit" den Pause-Button drücke, dann lande ich
tatsächlich in (siehe 3) dem
Screen.ActiveForm.Release; Das sieht so aus, dass bei jedem Formularwechsel folgendes passiert in onHide:
speicherfreigeben(); und in einem Formular sind alle Methoden gesammelt. Dort ist auch speicherfreigeben(); :
Delphi-Quellcode:
procedure speicherfreigeben();
begin
    try
      Screen.ActiveForm.Release;
    except
      ShowMessage('Ein schwerwiegender Fehler ist aufgetreten. #13#10Das Programm wird geschlossen. #13#10 Bitte starten Sie es neu.');
      Application.Terminate;
    end;
end;

Und Formulare werden so gewechselt:
Delphi-Quellcode:
     hide;
     F_Hier_Starten := TF_Hier_Starten.create(Application);
     F_Hier_Starten.show;

Vielleicht hilft euch das weiter...
Vielen Dank,

litotes
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.011 Beiträge
 
Delphi 10.4 Sydney
 
#9

Re: Programmprozess läuft weiter, obwohl "Windows"

  Alt 27. Jul 2007, 09:25
Hallo,

aha, du versteckst das mainform und erzeugst ein anderes ?
Dann klickst du auf das Kreuz des "anderen"
und wunderst dich, dass das versteckte mainform
immer noch da ist ...


Heiko
Heiko
  Mit Zitat antworten Zitat
litotes

Registriert seit: 12. Feb 2007
33 Beiträge
 
Delphi 7 Professional
 
#10

Re: Programmprozess läuft weiter, obwohl "Windows"

  Alt 27. Jul 2007, 09:28
Hallo Hoika,

bin nicht sicher, ob ich dich verstehe, aber die "Mainform", also
die erste die erzeugt wird, wird ja nicht nur versteckt (hide), sondern
mit Release zerstört.
Ausserdem passiert das ganze ja schon, bevor ich sie verstecke, also so:
1. Programmstart (3 Formulare werden erzeugt)
2. Das erste Formular erscheint.
3. Ich drücke auf das Windows-Kreuz
4. Programm schließt, Prozess ist aber noch im Taskmanager.

litotes
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 21:25 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf