AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Taskleiste WM_ Botschaften abfangen?
Thema durchsuchen
Ansicht
Themen-Optionen

Taskleiste WM_ Botschaften abfangen?

Ein Thema von WilderMike · begonnen am 25. Nov 2024 · letzter Beitrag vom 25. Nov 2024
Antwort Antwort
WilderMike

Registriert seit: 18. Nov 2024
12 Beiträge
 
#1

Taskleiste WM_ Botschaften abfangen?

  Alt Gestern, 16:00
Hallo,
für mein falsches PopupMenu Menü (ist eine Form) wäre es hilfreich*, wenn ich wohl die Botschaften WM_MOUSEHOVER und WM_MOUSELEAVE für die Taskleiste abfangen könnte. Ob das geht? Ich kam auf die Idee, da man mit
Code:
ShowWindow(FindWindow('Shell_TrayWnd', nil), SW_HIDE);
z.B. die Taskleiste ausblenden (mit SW_SHOW wieder einblenden) kann. Also man kann zumindest etwas mit der Taskleiste anstellen. Wäre super wenn das irgendwie geht.

* Bei echten Popups (wenn angezeigt) werden solche Botschaften von der Taskleiste wohl auch nicht empfangen. Zumindest findet keine optische Sache statt. Evtl. kann ich meine Form auch so umbiegen, dass Windows diese als Popup-Fenster betrachtet. Die Idee mit "WS_POPUP" bringt jedoch keine Änderung.

Gruß WilderMike
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
970 Beiträge
 
Delphi 6 Professional
 
#2

AW: Taskleiste WM_ Botschaften abfangen?

  Alt Gestern, 16:18
Hmm..

ein mit
Shell_NotifyIcon(NIM_ADD, @Ftnid);
erzeugtes ICON hat kein eigenes PopUp....

in den NOTIFYICONDATA kann ein Handle (von Fenster oder anderes WindowHandle) angegeben werden, mit einer eigenen MessageID
(z.B. const WM_TASKBAREVENT = WM_USER + 1111

Windows sendet dann alle WindowsMessages (wie WM_LBUTTONDBLCLK / WM_RBUTTONDOWN) an dieses Window.

Ob deine gewünschten dabei sind müsstest Du testen...

Hatte da mal vor Jahren eine Unit für gebastelt, welche das mit einem eigenen PopUp Menu macht.
Alternativ kannst Du dann auch ein Fenster anzeigen, und dann beim Verlassen des Fensters (Mouse) dieses wieder schließen.
(Ja ich Verwende Delphi 6 Pro und will NICHT wechseln!)
  Mit Zitat antworten Zitat
WilderMike

Registriert seit: 18. Nov 2024
12 Beiträge
 
#3

AW: Taskleiste WM_ Botschaften abfangen?

  Alt Gestern, 16:44
Noch verstehe ich nicht viel

Also ich habe ein TTrayIcon welches in der Taskleiste erscheint. Dort öffne ich eine 2. Form die inzwischen schön als Popup mit ein paar Extras ausgestattet ist. Das schließen und öffnen dieses falschen Popups geht wie gewünscht. Wenn die Form offen ist, sehe ich sozusagen WM_MOUSEHOVER und WM_MOUSELEAVE auf der Windows-Taskleiste. Also die Schaltflächen und Icons reagieren optisch. Auch "Hint-Windows" öffnen sich. Gerade diese stören, wenn meine Form dort erscheint. Für eine besser Benutzerfreundlichkeit wäre es gut, wenn ich die Windows-Taskleiste kurz sperren kann bzw. die beiden Botschaften denn ein Mausklick sollte noch funktionieren, da sonst meine Form wohl keinen Fokus verliert und sie dann nicht geschlossen wird. Wenn "WM_MOUSEHOVER und WM_MOUSELEAVE" abgefangen werden könnte, sollten Hint-Windows (z.B. Ausgeblendete Symbole einblenden - bei Windows 11) dann wohl auch nicht funktionieren. Wenn mein unechtes Popup-Fenster wieder geschlossen wird, kann man "WM_MOUSEHOVER und WM_MOUSELEAVE" natürlich wieder freischalten.

Also es geht nicht nur um mein TrayIcon. Möchte die ganze Taskleiste mit den beiden Botschaften abfangen.

Geändert von WilderMike (Gestern um 16:46 Uhr)
  Mit Zitat antworten Zitat
WilderMike

Registriert seit: 18. Nov 2024
12 Beiträge
 
#4

AW: Taskleiste WM_ Botschaften abfangen?

  Alt Gestern, 17:01
Gerade probiert
Code:
EnableWindow(FindWindow('Shell_TrayWnd',nil), false);
etwas wird gemacht. Aber nicht so wie gewünscht.
Erst mal gibt es ein Beep, beim Mausklick auf der Taskleiste und sie reagiert genauso, nur um einiges langsamer. Also richtig gesperrt ist sie nicht. Aber das will ich ja eigentlich auch nicht. Wollte es aber mal so probieren
  Mit Zitat antworten Zitat
Antwort Antwort


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 02:40 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