Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Shell_NotifyIcon (Modify) funktioniert nicht! (https://www.delphipraxis.net/88120-shell_notifyicon-modify-funktioniert-nicht.html)

woggly4 10. Mär 2007 13:27


Shell_NotifyIcon (Modify) funktioniert nicht!
 
Hallo, ich habe mir ein Programm programiert, dass man in den TNA verschieben kann. Es ist ein Pingprogramm und je nach Verfügbarkeit des Internets, verändert sich das Programmsymbol. Jetzt zu meinem Problem: Wenn es im TNA ist und das Symbol sich ändert, ändert es sich nicht im TNA. Ich muss das Programm erst maximieren und dann wieder minimieren, damit sich das Symbol im TNA ändert... Das ist natürlich doof und auch nicht erwünscht! Wie kann ich das machen, dass sich das Icon ändert, ohne dass ich das Programm nochmal in den Vordergrund holen muss? Ich habe es schonmal mit
Delphi-Quellcode:
Shell_NotifyIcon(NIM_MODIFY, @NIM)
aber der gewünschte Effekt tritt nicht auf! :roll:

Muetze1 10. Mär 2007 13:30

Re: Shell_NotifyIcon (Modify) funktioniert nicht!
 
1. Ist das angegebene Fensterhandle in der NIM Struktur noch das gleiche?
2. Ist die NIM Struktur die gleiche wie beim Hinzufügen oder genauso gefüllt?
3. Was für Aktionen machst du beim Minimieren/Maximieren in deinem Programm? (Vielleicht TNA Icon entfernen und neu hinzufügen?)

woggly4 10. Mär 2007 13:45

Re: Shell_NotifyIcon (Modify) funktioniert nicht!
 
Zitat:

Zitat von Muetze1
1. Ist das angegebene Fensterhandle in der NIM Struktur noch das gleiche?
2. Ist die NIM Struktur die gleiche wie beim Hinzufügen oder genauso gefüllt?
3. Was für Aktionen machst du beim Minimieren/Maximieren in deinem Programm? (Vielleicht TNA Icon entfernen und neu hinzufügen?)

Punkt 1 und 2 treffen zu.
Zu Punkt 3: Beim minimieren:
Delphi-Quellcode:
Shell_NotifyIcon(NIM_DELETE, @NIM)
beim maximieren
Delphi-Quellcode:
Shell_NotifyIcon(NIM_ADD, @NIM)
Aber im TNA zeigt er das ja alles an allerdings ändert er das Symbol im TNA nur, wenn ich maximiere und dann wieder minimieren, ich will den Schritt aber nicht machen müssen!

Muetze1 10. Mär 2007 13:47

Re: Shell_NotifyIcon (Modify) funktioniert nicht!
 
Das er beim Löschen und neu Hinzufügen das aktuelle Icon nimmt, ist ja schlichtweg nicht verwunderlich. Aber eine dumme Frage habe ich noch: Änderst du vor dem NIM_MODIFY Aufruf auch das Icon Handle in der Struktur?

woggly4 10. Mär 2007 14:00

Re: Shell_NotifyIcon (Modify) funktioniert nicht!
 
Zitat:

Zitat von Muetze1
Das er beim Löschen und neu Hinzufügen das aktuelle Icon nimmt, ist ja schlichtweg nicht verwunderlich. Aber eine dumme Frage habe ich noch: Änderst du vor dem NIM_MODIFY Aufruf auch das Icon Handle in der Struktur?

Aber wenn es im TNA ist und ich irgendwie alle 10 Sekunden DELETE und ADD hintereinander mach, ändert sich das Symbol komischerweise auch nicht. Wie meinst du das, dass ich das in der Struktur änder? :?:

DGL-luke 10. Mär 2007 14:03

Re: Shell_NotifyIcon (Modify) funktioniert nicht!
 
Hallo,

in der Struktur hast du ja ein Handle für das Icon. wenn deine application ein neues symbol bekommt, kann sich das handle ändern. das heißt, du musst deine struktur updaten (handle neu zuweisen) und dann das MODIFY durchführen.

woggly4 10. Mär 2007 14:04

Re: Shell_NotifyIcon (Modify) funktioniert nicht!
 
Zitat:

Zitat von DGL-luke
Hallo,

in der Struktur hast du ja ein Handle für das Icon. wenn deine application ein neues symbol bekommt, kann sich das handle ändern. das heißt, du musst deine struktur updaten (handle neu zuweisen) und dann das MODIFY durchführen.

Achso, das werde ich gleich mal ausprobieren. Danke!

woggly4 10. Mär 2007 14:10

Re: Shell_NotifyIcon (Modify) funktioniert nicht!
 
Also ich habe das jetzt mit
Delphi-Quellcode:
  Icon.Handle;
  Shell_NotifyIcon(NIM_Modify, @NIM);
ausprobiert, aber das funktioniert auch irgendwie nicht. Oder weise ich den handle einfach nur falsch zu?

turboPASCAL 10. Mär 2007 14:53

Re: Shell_NotifyIcon (Modify) funktioniert nicht!
 
Entschuldige bitte, aber bei den kleinen Quelltextstüchen kann man nu nicht viel erkennen.

DP-Maintenance 10. Mär 2007 15:47

DP-Maintenance
 
Dieses Thema wurde von "Christian Seehase" von "Programmieren allgemein" nach "Windows API / MS.NET Framework API" verschoben.
Ein delphispezifisches Problem


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