AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Registrierung für Broadcast für Window Messages umgehen
Thema durchsuchen
Ansicht
Themen-Optionen

Registrierung für Broadcast für Window Messages umgehen

Ein Thema von christophspaeth · begonnen am 4. Sep 2008 · letzter Beitrag vom 10. Sep 2008
 
christophspaeth

Registriert seit: 7. Mär 2008
73 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Registrierung für Broadcast für Window Messages umgehen

  Alt 4. Sep 2008, 20:04
Hallo zusammen,

ich habe einen WebService für Apache 2.2.3, der dummerweise die unit Forms einbindet und damit wird die Anwendung anscheinend automatisch registriert, Broadcasts für WindowsMessages anzunehmen.

Wenn jetzt keine (geeignete?) Message Loop vorhanden ist, ist es nicht mehr möglich, Einstellungen im Internet Explorer zu ändern, weil der beim Übernehmen der Änderung eine Nachricht an alle Fenster schickt (laut Spy++ könnte das WM_SETTINGSCHANGE sein), und dann so lange wartet bis die Nachricht überall abgearbeitet ist (oder der entsprechende Prozess beendet).

Bevor jemand anders die berechtigte Frage stellt, warum man Forms in einen Webservice einbindet: Altlast, die leider nicht von heute auf morgen entsorgt werden kann.

Das ich nicht drum rum komme, die ganzen Units aufzuräumen ist klar, aber wenn jemand einen Tipp hätte, wie ich das Problem bis dahin umgehen kann, bzw. was überhaupt *genau* dafür verantwortlich ist, das wär super!
Ich bin auch noch nicht dahintergekommen, ob Forms jetzt dafür verantwortlich ist, dass der Apache überhaupt benachrichtigt wird, oder ob da eher was verbogen wird, das verhindert, dass der Apache die Message richtig verarbeitet.

Um das Problem zu reproduzieren, muss man dem Delphi erstmal Apache 2.2 beibringen, dann ein einfaches Apache-Modul machen eben z.B. einen WebService und irgendwo Forms einbinden.
In Apache einbinden, Apache starten und versuchen, die Interneteinstellungen in IE zu ändern -> IE hängt. Apache beenden -> IE sollte weitermachen und Settings-Fenster solte zugehen. Forms raus, kompilieren, apache starten, interneteinstellungen ändern -> funzt wieder.

Den naheliegenden Pfusch/Workaround, in einem Modul einen Thread zu starten, der dann nur damit beschäftigt ist, alle paar (hundert) Millisekungen (Forms.)Application.ProcessMessages() aufzurufen hab ich auch schon probiert, hatte aber keinen Erfolg damit.

Noch ein Hinweis: Im Apache 1.3 macht Forms anscheinend keine Probleme.

Danke für's Lesen (und noch mehr Dank für's Antworten *g*)
Chris
Christoph Späth
  Mit Zitat antworten Zitat
 


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