Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Tray Icon eines fremden Programms verbergen/anzeigen (https://www.delphipraxis.net/15301-tray-icon-eines-fremden-programms-verbergen-anzeigen.html)

Fellmer Lloyd 26. Jan 2004 08:07


Tray Icon eines fremden Programms verbergen/anzeigen
 
Hi!

Ich suche eine Möglichkeit, das Tray Icon eines fremden Programms zu verbergen, und bei Bedarf wieder anzuzeigen.
Das Handle des Hauptfensters ist mir bekannt.

Ich habe eine Komponente gefunden mit der dies möglich ist, aber leider ist sie nicht Open Source.
Die funktion "Shell_NotifyIcon" habe ich schon verwendet, allerdings nur bei eigenen Icons.

Bin für jeden Tip/Link dankbar :thuimb:

Ad Astra, Fellmer

[Edit 1]:
Idee: Wenn ich die Eigenschaften des Tray Icons festhalten könnte, sollte es doch möglich sein das fremde Icon mittels "NIM_ADD"/"NIM_DESTROY" zu entfernen/anzuzeigen.

Dax 26. Jan 2004 12:31

Re: Tray Icon eines fremden Programms verbergen/anzeigen
 
NIM_DESTROY ist nicht so gut, versuche es doch mal mit
Delphi-Quellcode:
//Zum anzeigen:
ShowWindow(TNA_Handle, SW_SHOW);
//Zum hiden:
ShowWindow(TNA_Handle, SW_HIDE);
Oder SendMessage...

Fellmer Lloyd 26. Jan 2004 13:22

Re: Tray Icon eines fremden Programms verbergen/anzeigen
 
Hi

Mit "ShowWindow(Handle, SW_HIDE)" wird nur das Fenster der Anwendung verborgen, nicht das Tray Icon.
Besitzt ein Tray Icon ein eigenes Handle?

Gruss

chris 26. Jan 2004 13:28

Re: Tray Icon eines fremden Programms verbergen/anzeigen
 
hi,

ja, dax meint mit TNA_Handle das handle des icons/forms in der TNA

Fellmer Lloyd 27. Jan 2004 08:04

Re: Tray Icon eines fremden Programms verbergen/anzeigen
 
Ok.

Kennt jemand eine möglichkeit an dieses Handle zu kommen?
Bzw. sich alle TNA_Handles "aufzulisten"? :gruebel:

Gruss

chris 27. Jan 2004 08:36

Re: Tray Icon eines fremden Programms verbergen/anzeigen
 
hi,

FindWindow() (s. W32 API)

Fellmer Lloyd 27. Jan 2004 08:45

Re: Tray Icon eines fremden Programms verbergen/anzeigen
 
Moin

Die Funktion kenne ich, ich benutze sie um das Hauptfenster der Anwendung zu ermitteln.

Ich müsste eigentlich nur den Klassennamen eines TNAs kennen, dan könnte ich mir alle Tray Icons mit "EnumWindows()" auflisten, oder?

chris 27. Jan 2004 08:55

Re: Tray Icon eines fremden Programms verbergen/anzeigen
 
hi,

yo *g*

also so bekommst du schonmal die TNA

Delphi-Quellcode:
  trayhwnd := FindWindowEx(0, 0, 'Shell_TrayWnd', nil);
  if (trayhwnd = 0) then exit;
  trayhwnd := FindWindowEx(trayhwnd, 0, 'TrayNotifyWnd', nil);
  if (trayhwnd = 0) then exit;

MathiasSimmack 27. Jan 2004 09:26

Re: Tray Icon eines fremden Programms verbergen/anzeigen
 
Das Programm "Inspect" aus dem PSDK (bin-Ordner) sagt mir, dass der Klassenname "TrayNotifyWnd" lautet. Der von der Uhr übrigens "TrayClockWClass". So einfach ist das Thema aber nicht. Ich meine mich an einen Beitrag zu erinnern (entweder hier oder im DF?), in dem die Icons u.a. (!) mit ReadProcessMemory usw. ermittelt wurden. Das klappt aber nur ansatzweise und IMHO auch nicht unter jedem Windows.

Die Frage ist jetzt: Wo war das? Dann kann man danach suchen.

Fellmer Lloyd 28. Jan 2004 15:58

Re: Tray Icon eines fremden Programms verbergen/anzeigen
 
Hab mir einige Beispiele zu ReadProcessMemory bzw. WriteProcessMemory angeschaut.
Die sache ist mir jedoch zu heikel (Direkt in den Speicher zu schreiben), ausserdem wüsste ich nicht genau wie :cry:.

Naja, wird wohl nix draus werden, aber thx für die Tips :thuimb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:36 Uhr.
Seite 1 von 2  1 2      

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