Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Windows Taskbar Z-Order Change (https://www.delphipraxis.net/186370-windows-taskbar-z-order-change.html)

FarAndBeyond 28. Aug 2015 01:46

Windows Taskbar Z-Order Change
 
Hi,
Gibt es eine Message die anzeigt wann Windows die Taskbar Topmost setzt, also z.B. wenn man mit der Maus über einen TaskbarButton fährt?

Diese Message bringt ja bei Z-Order Bewegungen gar nichts:
WMSettingChange(Var Msg: TWMSettingChange);

Oder gibt es ein OnMoving oder irgendetwas anderes...? Hat das schonmal jemand gebraucht ??



Ansonsten brauch' ich wohl 'nen LowLevelMouseHook... oder ich bau' mir 'ne eigene Shell...

Zacherl 29. Aug 2015 17:12

AW: Windows Taskbar Z-Order Change
 
Was genau willst du denn erreichen?

FarAndBeyond 29. Aug 2015 22:25

AW: Windows Taskbar Z-Order Change
 
@Zacherl:
Ich wollte hier und dort kleine Fenster auf bzw. über die Taskbar legen um dort zusätzliche Informationen anzeigen zu lassen:
z.B. Kalenderwoche, Feiertage, eigenes Internetsymbol(Ping Router, Ping Websites), vielleicht RAM u. CPU Auslastung usw...

Da ich jetzt einen etwas breiteren Monitor nutze hab' ich 'ne Menge zusätzlichen Platz.
Mir hat immer das Fenster von BatteryBar gefallen, aber ich hab' gestern von Chris erfahren, dass BatteryBar eine Dll ist die das IDeskband implementiert.
Da ich aber auch über den Startbutton möchte und über Teile der TNA wird mir ein Deskband wohl nur teilweise helfen.

Über den StartButton zu kommen ist leicht, aber sobald ich mit der Maus über die TaskbarButtons fahre brauche ich einen Timer und selbst der hilft rein optisch nicht, da es dann oft kurz flackert.
Delphi-Quellcode:
Procedure Tform_XYZ.CreateParams(Var Params: TCreateParams);
  Var
   hwnd_GetStartButton: HWND;
 Begin
  Inherited;
  hwnd_GetStartButton := FindWindowEx(0, 0, MAKEINTATOM($C017), 'Start');
  Params.WndParent := hwnd_GetStartButton;
 End;
Möglicherweise würde ein LowLevelMouseHook funktionieren, der bei jeder Mausbewegung über dem "TaskbarRechteck" SetWindowPos(form_XYZ.Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE or SWP_NOMOVE or SWP_NOACTIVATE); ausführt.

Hab' ich noch nicht getestet... zumal dann eine eigene Shell wahrscheinlich klüger wäre...


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