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 2 von 3     12 3   
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.270 Beiträge
 
Delphi 11 Alexandria
 
#11

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

  Alt 27. Jul 2007, 09:35
Zitat von litotes:
Meine Anwendung hat einen programmierten Ende-Button, der auch tadellos funktioniert.
Dann zeig doch mal den Source, der bei Klick ausgeführt wird.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
litotes

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

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

  Alt 27. Jul 2007, 09:47
Hi,

der Ende-Button ist ein simples onClick auf einen Button, mit:
Application.Terminate; So jedenfalls hat meine Forumssuche ergeben, ist der beste Weg, zu beenden.

gruss

litotes
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

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

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

  Alt 27. Jul 2007, 09:59
ein einfaches "Close()" sollte zum schließen genügen.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
KesseK

Registriert seit: 31. Jan 2007
Ort: Dortmund
48 Beiträge
 
Delphi 7 Personal
 
#14

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

  Alt 27. Jul 2007, 10:00
Application.Terminate; Was passiert bei einem simplen close;?

Terminate klingt so brutal, das mag ich persönlich gar nicht.
Sammy
lalalalalalala la la .. Wem gehört das Reh auf der Wiese dort?
  Mit Zitat antworten Zitat
litotes

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

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

  Alt 27. Jul 2007, 10:34
Hallo,

weiteres Debuggen hat ergeben, dass mein Programm anscheinend an folgender Stelle hängt (nachdem ich Beendet habe per Windows-Kreuz):
im CPU-Fenster sieht man

ntdll.kiFastSystemCallRet


Kann damit jemand was anfangen?


litotes
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
7.992 Beiträge
 
Delphi XE4 Professional
 
#16

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

  Alt 27. Jul 2007, 10:53
Hallo,

setz mal einen Breakpoint auf FormDestroy das Hauptforms.


Heiko
Heiko
  Mit Zitat antworten Zitat
litotes

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

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

  Alt 27. Jul 2007, 11:25
Hallo,

@hoika: den Breakpoint habe ich gesetzt, obwohl onDestroy bisher gar nicht existiert hat.
Ich habe also mal label1.caption := 'test'; reingeschrieben.

Beim durchsteppen kommt erst der ganze label caption Kram, und dann landet er,
auch bei anderen Befehlen (also close() statt label.caption) bei dem Mutex-Befehl:

Delphi-Quellcode:
const
  MutexName = 'Helfomat';
  //-->der Name, unter dem Windows dein Programm anspricht
 var
  hMutex: THandle;
begin
  hMutex := CreateMutex(NIL, True, MutexName);
  //-->Versuch, dem Programm den obigen Mutex zuzuweisen
  if (hMutex = 0) OR (GetLastError = ERROR_ALREADY_EXISTS) then
  begin
    CloseHandle(hMutex);
    halt;
  end;

  Application.Initialize;
  Application.CreateForm(TF_Navigation_705_Abfrage, F_Navigation_705_Abfrage);
  Application.CreateForm(TF_Hier_Starten, F_Hier_Starten);
  Application.CreateForm(TF_SM, F_SM);
  Application.Run;
  CloseHandle(hMutex);
Dieser Code steht bei meiner "program"-datei, also der "Programmname.dpr".

Merkwürdigerweise läuft der Prozess auch nur weiter, nachdem ich ins
zweite Formular gewechselt bin. Wenn ich nur Form1 aufmache, ist alles ok.

Noch jemand ne gute Idee?

litotes
  Mit Zitat antworten Zitat
litotes

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

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

  Alt 27. Jul 2007, 14:38
Hallo,

ich hab den Fehler noch ein wenig weiter eingeengt.

Mein Hauptformular lässt sich schließen, und der Prozess wird sauber beendet.

Der Fehler (Prozess läuft weiter) tritt nach dem Wechsel zum 2. Formular auf.

Und es ist völlig egal, ob ich ein völlig leeres Formular aufrufe, und wie ich es
aufrufe (über create dynamisch zur Laufzeit, oder gleich zu Beginn immer vorhanden).

Es kann also IMHO nicht an dem liegen, was im 2. Formular aufgerufen wird, oder?

/edit: Ein letzter verzweifelter Test hat ergeben, dass ein völlig neues Projekt (!), das
nur aus 2 leeren Form1 und Form2 mit einem Button dazwischen und hide; Form2.show besteht,
denselben Fehler zeigt. Kann das jemand mal auf seinem Computer nachvollziehen?
Sprich, auf Form2 wechseln, über das Kreuz schließen und prüfen, ob der Prozess noch läuft?

Ich werde immer ratloser...

litotes
  Mit Zitat antworten Zitat
shadowman

Registriert seit: 1. Nov 2005
48 Beiträge
 
#19

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

  Alt 9. Okt 2010, 11:47
Hallo,

es ist schon viel zeit vergangen seit dem letzten Post hier, aber eine Lösung war nicht dabei, wie es aussieht, und da ich ein ähnliches Problem habe, dachte ich, ich poste mal hier.

Bei mir sieht es folgendermaßen aus:
- Eine mit Delphi 2007 erstellte Anwendung
- Auf Betriebssystemen außer Windows 7 scheint alles zu funktionieren
- Auf Windows 7 auch, aber nur solange kein Fehler während der Laufzeit auftritt. Passiert dies, z.B. eine Zugriffsverletzung, bleibt der Prozess nach dem Beeden in der Prozessliste und muss manuell beendet werden. Ohne Fehler geht es.

Gibt es irgendwelche neuen Erkenntnisse, ähnliche Erfahrungen oder Ideen in dem Zusammenhang?

Schöne Grüße,
"shadowman"
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie
(Moderator)

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

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

  Alt 9. Okt 2010, 11:53
Dann behandle den Fehler (Exception), wenn er sich nicht vermeiden lässt.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
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 +2. Es ist jetzt 01:12 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