Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Anwendung schliessen -> Windows hängt (https://www.delphipraxis.net/56952-anwendung-schliessen-windows-haengt.html)

Schubi 14. Nov 2005 07:41


Anwendung schliessen -> Windows hängt
 
Hallo zusammen!

Nachdem die DP gerade meinen frisch erstellten Thread gefressen hat, hier der zweite Versuch *g*

Ich hab eine Anwendung mit mehreren Fenstern, einer DLL und einer Message-Hook.

Wenn ich nun im Hauptfenster auf das Kreuzchen zum Schließen klicke, wird dieses als gedrückt gezeichnet und dann hängt das komplette Windows. Keine Maus kein Garnichts mehr :-(

Wenn ich allerding über einen Rechtsklick in der Taskbar "Schliessen" wähle, geht es.

Ausserdem funktioniert es manchmal auch mit dem Kreuzchen, wenn ich vorher das zweite Fenster der Anwendung (Typ Toolwin) schließe.

Hat jemand von euch eine Idee was das sein kann?
Ich dachte beides ruft die selbe Funktion auf?!

Gruß und danke,

Schubi

Bernhard Geyer 14. Nov 2005 07:55

Re: Anwendung schliessen -> Windows hängt
 
Wie tief hängt der Message-Hook im System?
Häng diesen mal im CloseQuery-Event wieder ab.

Hab solche Probleme auch mit dem Spy-Programm von MS wenn das die Anwendung mit einem überwachten Fenster geschlossen wird.

Schubi 14. Nov 2005 08:15

Re: Anwendung schliessen -> Windows hängt
 
Die Hook hängt an der Tastatur. Und die DLL ist eine zum Filtern von Systemtasten. Ist ne Anwendung zum Testen von Tastaturen.

Ich wüsste nicht wie ich Den Hook vorher raus nehmen sollte. Ich komm ja netmal mehr bis zum CloseQuery :-(

Hier das CloeQuery
Code:
  If RecKill Then begin
    RecKill := False;
    Canclose := True;
  end
  else begin
    //Beenden-Abfrage
    CanClose := MessageDlg('Wirklich beenden?', mtConfirmation, [mbYes,mbNo], 0) = mrYes;
  end;
    If CanClose Then begin
    LOG('CLOSE_QUERY.CLOSE');
    //Test beenden
    Try
      If Config.KillSystemKeys Then begin
        Main.ClearWinHook;
      end;
      keybdwin.UnMarkKey;
      keybdwin.StopBlinkKey;
      testing := false;
      LogError := True;
    except
    end;
    //Socket schliessen
    If not Config.noUDP Then StopListen;
  end;
Es bleibt noch zu sagen dass das Problem nur an 2 Rechnern auftritt. An 30 anderen läuft es.
Bei dem 2. PC wo es nicht geht ging es immer ohne Weiteres. Jetz nach einer Windows Neuinstallation nicht mehr.
Nochmal neu Installieren hilft aber auch nichts, hab ich schon mehrfach versucht.


--EDIT--

Habs eben mal getestet. Hab mit einem Button vor dem Beenden den Hook destroyed und die DLL entladen. Ohne Erfolgt. Alles wie vorher :-(

Schubi 15. Nov 2005 10:47

Re: Anwendung schliessen -> Windows hängt
 
Hab Neuigkeiten zum Problem:
Es tritt nicht nur auf, wenn ich die Anwedung schließe, sondern auch beim Minimieren. Wie gehabt, über die Taskbar geht es wieder.

Hab mal bei den Windows das XP-Design deaktviert, dann geht es. Allerdings nur wenn die Anwendung getsrtet wird, so lange das XP-Design deaktiviert ist. Wenn Sie einmal läuft und man aktiviert die Styles wieder, geht es trotzdem.

Habe ausserdem versucht das XP-MAnifest aus der Anwendung rauszulassen, das bringt nichts. Hat jemand von euch einen Tipp, wieso die XP-Styles Windows zum Aufhängen bringen können?


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:02 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