![]() |
Message an alle Fenster/systemweit
Hey,
eine Anwendung von mir läuft stetig im Hintergrund. Mehrere andere Programme von mir können währenddessen laufen. Zu bestimmten Zeitpunkten soll nun die Anwendung, die im Hintergrund läuft, eine Message an alle meine anderen Anwendungen senden (die Anzahl der Anwendungen sowie deren Name etc. ist nicht bekannt). So, nun die Frage: Ist es möglich, eine Message systemweit an alle Fenster zu senden? Ein Raussuchen meiner Fenster über FindWindow wäre sehr unflexibel und zudem nicht machbar, da die Namen der Anwendungen, wie schon gesagt, nicht bekannt sind. Mfg |
Re: Message an alle Fenster/systemweit
Wenn es sich um Top-Level-Fenster handelt, kannst du die Nachricht an HWND_BROADCAST schicken.
|
Re: Message an alle Fenster/systemweit
So zum Beispiel:
SendMessage(HWND_BROADCAST, WM_WININICHANGE, 0, 0); // An alle: bitte neuen Drucker benutzen! |
Re: Message an alle Fenster/systemweit
OK, Top-Level-Fenster sind Fenster mit Taskbar-Eintrag, oder erinnere ich mich da falsch?
|
Re: Message an alle Fenster/systemweit
Nicht zwingend. Wenn ich mich nicht irre, ist ein Top-Level-Fenster lediglich als ein Fenster ohne Parent definiert. Der Taskbar-Eintrag hängt noch mit einem Window-Style zusammen.
|
Re: Message an alle Fenster/systemweit
Ist die Mainform einer Delphianwendung denn ein Top-Level-Fenster?
|
Re: Message an alle Fenster/systemweit
Ich glaube nicht, aber dafür würde ich meine Hand nicht ins Feuer legen. Probiere es doch einfach mal aus.
|
Re: Message an alle Fenster/systemweit
Zitat:
Gibts noch andere Möglichkeiten / Ideen / Ansätze? |
Re: Message an alle Fenster/systemweit
Hast du es mal mit Application.OnMessage versucht? Application ist auf jeden Fall ein Top-Level-Fenster.
|
Re: Message an alle Fenster/systemweit
Zitat:
![]() |
Re: Message an alle Fenster/systemweit
Die Lösung, die dort beschrieben wird, funktioniert. ABER.. da erst über RegisterWindowMessage eine "Message-ID" zugewiesen wird, ist diese ID variabel. Bei mir muss aber eine unabhängige Anwendung auf die Message reagieren, und dazu muss die ID schon konstant sein.
|
Re: Message an alle Fenster/systemweit
Was ist eine "unabhängige Anwendung"?
|
Re: Message an alle Fenster/systemweit
"Unabhängig von der Anwendung, die die Message schickt. D.h., die andere Anwendung hätte bei variabler ID nicht die geringste Chance, auf die Message zu reagieren. Übrigens: Mit Application.OnMessage funktioniert es nur, wenn ich die Message and Handle schicke, bei HWND_BROADCAST kommt nach wie vor nichts an :?
|
Re: Message an alle Fenster/systemweit
Der Witz an RegisterWindowMessage ist doch gerade, dass bei gleichem Parameter auch die gleiche ID herauskommt. Insofern kannst du sehr wohl kommunizieren.
|
Re: Message an alle Fenster/systemweit
Zitat:
Edit: Es funktioniert :cheers: Danke für deine Geduld mit mir :cyclops: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:44 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz