Entwickler-Ecke

Windows API - Position des Symbols in TNA bestimmen


Popov - Di 20.05.03 17:05
Titel: Position des Symbols in TNA bestimmen
Diese Frage stelle ich weniger aus einer Not, als aus Wissensdurst.

Ich hab eine Freewareprogramm gesehen, daß mir die Entfernung (bzw. Position X/Y) relativ zu seinem eigenem TrayIcon zeigen konnte. Mich würde es interresieren wie das gemacht wurde, da ich bis jetzt gemeint habe, daß man auf das Icon kein Zugriff (z.B. über Handle) hat. Anscheinen hat dieses Freewarprogramm dieses Problem irgendwie gelöst und ist in der Lage die Koordinaten seines Icons festzustellen.

Weiß einer wie das geht?


toms - Di 20.05.03 18:32

Hi,

Das Handle zum TrayIcon hast du ja.
Dann kannst du ja auch die Koordinaten bestimmen, oder?


jaenicke - Fr 01.04.05 14:26

Tja, weiß jemand, wie das geht? Das suche ich nämlich dringend für eines meiner Programme.

BalloonHints via Shell_NotifyIcon gibts ja erst ab ShellControls 5.0 +, aber mein Programm soll auch mit Win98 IE 4 laufen. Deshalb will ich den BalloonHint selbst zeichnen, brauche dafür aber die Position.

Und es muss vor allem eine Lösung sein, die auch unter Windows 98 schon läuft; dass es unter Windows XP SP2 o.ä. Ergänzungen zu der Struktur für Shell_NotifyIcon gegeben hat, weiß ich selbst.

Hoffe, jemand hat eine Idee...


Yogu - Mo 19.11.07 18:38

Ich weiß nicht, ob es dir was hilft, aber die Position der Taskbar kannst du so herausfinden:


Delphi-Quelltext
1:
2:
Handle := FindWindow('Shell_TrayWnd'nil);
GetWindowRect(Handle, TaskBarRect);


Dadurch könntest du z.B. ein Rechteck in der rechten Ecke zeichnen.