Icons vermehren sich
-
3dhubiflieger
- Beiträge: 123
- Registriert: 27.10.2013 12:13
Icons vermehren sich
Hallo, ich hätte mal ne Frage bezüglich der Iconerstellung. Mir ist aufgefallen das sich in Windows 7 die Iconsymbole (unten rechts, Pfeil) vermehren. Es werden dann viele Icons doppelt angezeigt, nachdem mein Programm eine weile gelaufen ist. Die Icons betreffen dabei andere Programme. Mein Programm erstellt 1 Icon. Und dieses bleibt auch, komischerweise ?! Wenn ich nun mit der Maus über die ganzen Icons drüberfahre, ohne zu klicken, so verschwinden auf einmal die überflüssigen Icons ?! Gibts dafür eine Erklärung ?
Gruss Kevin
Gruss Kevin
Re: Icons vermehren sich
Hast du ein Screenshot oder ein Video für uns? Kannst du deine Anwendung hochladen?
Gibst du auch alle Handles wieder frei?
Gibst du auch alle Handles wieder frei?
Re: Icons vermehren sich
Was macht dein Programm ?
Allerdings kann man sagen, das der Iconcache sich nicht ohne Aufforderung "aktualisiert".
Am besten kann man dieses Phänomen beobachten, wenn man von einer SSD Windows 7 startet, auf einem langsameren Rechner.
Nachdem der Desktop erscheint, sind erst alle Icons vorhanden, so wie sie aussehen sollen, dann werden auf einmal alle
schlagartig weiss ... und nach und nach kommen die Originalen Bilder wieder.
Ist es vielleicht dieses ?
Allerdings "vermehren" sich die Icons nicht ohne Grund.
Evt. macht dein Programm da etwas nicht so wie es soll .... ?!
Allerdings kann man sagen, das der Iconcache sich nicht ohne Aufforderung "aktualisiert".
Am besten kann man dieses Phänomen beobachten, wenn man von einer SSD Windows 7 startet, auf einem langsameren Rechner.
Nachdem der Desktop erscheint, sind erst alle Icons vorhanden, so wie sie aussehen sollen, dann werden auf einmal alle
schlagartig weiss ... und nach und nach kommen die Originalen Bilder wieder.
Ist es vielleicht dieses ?
Allerdings "vermehren" sich die Icons nicht ohne Grund.
Evt. macht dein Programm da etwas nicht so wie es soll .... ?!
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom
-
3dhubiflieger
- Beiträge: 123
- Registriert: 27.10.2013 12:13
Re: Icons vermehren sich
Hier mal nen Bild..unten, das eine schwarze Icon ist mein Programm. Die anderen Icons vermehren sich irgendwie....
https://workupload.com/file/BXycuwW

https://workupload.com/file/BXycuwW
Re: Icons vermehren sich
Die anderen Icons kenne ich nicht. Welche Programme sind das? Kann es sein, dass Du diese Programme in einer Schleife immer wieder startest (RunProgram())?
Oder aber sind die Icons von Dir (AddSysTrayIcon())?
Grüße ... Peter
P.S.: mach mal das Bild ein wenig kleiner...
Oder aber sind die Icons von Dir (AddSysTrayIcon())?
Grüße ... Peter
P.S.: mach mal das Bild ein wenig kleiner...
a²+b²=mc²
Re: Icons vermehren sich
Und bist du dir sicher, dass AddSysTrayIcon() nicht mehrfach aufgerufen wird, beispielsweise in einer Schleife oder in einer Funktion, die in einer Schleife aufgerufen wird?
Ist dein Quellcode groß? Falls nicht, dann poste den Code oder nur den Bereich, in dem AddSysTrayIcon() aufgerufen wird.
Ist dein Quellcode groß? Falls nicht, dann poste den Code oder nur den Bereich, in dem AddSysTrayIcon() aufgerufen wird.
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Icons vermehren sich
DVBViewer und das andere sagt mir im Moment auch nichts.Kiffi hat geschrieben:Welche Programme sind das?
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Re: Icons vermehren sich
ahso, OK. Dann tippe ich auf wildgewordenes RunProgram().ts-soft hat geschrieben:DVBViewer und das andere sagt mir im Moment auch nichts.Kiffi hat geschrieben:Welche Programme sind das?
Grüße ... Peter
a²+b²=mc²
-
3dhubiflieger
- Beiträge: 123
- Registriert: 27.10.2013 12:13
Re: Icons vermehren sich
@RSBasic Addsystrayicon wird zwar mehrmals aufgerufen, allerdings wird das Icon auch wieder entfernt. Das sieht man ja auch. Sonst müsste mein Programm (schwarzes Icon mit der Lupe) sich ebenfalls vermehren. Aber das bleibt ja so , wie es soll.^
@Kiffi die angezeigten Programme laufen alle nur einmal. Es werden nur die Symbole mehrmals angezeigt. Fahr ich mit der Maus drüber, ist alles wie es soll. ...Das hatte ich aber schon geschrieben.
@TS-Soft Genau DVBViewer ,..und der dazugehörige Recordingservice
Gibts es vielleicht eine Möglichkeit diese Bereich irgendwie zu refreshen oder so ? Es scheint
wohl ein Anzeige oder Cacheproblem zu sein.
@Kiffi die angezeigten Programme laufen alle nur einmal. Es werden nur die Symbole mehrmals angezeigt. Fahr ich mit der Maus drüber, ist alles wie es soll. ...Das hatte ich aber schon geschrieben.
@TS-Soft Genau DVBViewer ,..und der dazugehörige Recordingservice
Gibts es vielleicht eine Möglichkeit diese Bereich irgendwie zu refreshen oder so ? Es scheint
wohl ein Anzeige oder Cacheproblem zu sein.
Re: Icons vermehren sich
Wenn man mit der Maus rüberfährt und das Icon verschwindet plötzlich, dann scheint so, dass das Systray-Icon nicht ordnungsgemäß freigegeben wurde.
Normalerweise sollte es nicht so sein. Ich hätte eigentlich gesagt, dass man lieber die Ursache beheben soll statt ein Workaround mit dem Neuzeichen der Systray-Leiste zu erstellen, aber da das anscheinend ein externes Programm ist, das du nicht programmiert hast, hast du keine andere Möglichkeit, Workaround zu benutzen.
Normalerweise sollte es nicht so sein. Ich hätte eigentlich gesagt, dass man lieber die Ursache beheben soll statt ein Workaround mit dem Neuzeichen der Systray-Leiste zu erstellen, aber da das anscheinend ein externes Programm ist, das du nicht programmiert hast, hast du keine andere Möglichkeit, Workaround zu benutzen.
Code: Alles auswählen
EnableExplicit
Define Handle
Handle = FindWindowEx_(FindWindowEx_(FindWindow_("Shell_TrayWnd", 0), 0, "TrayNotifyWnd", 0), 0, "SysPager", 0)
If Handle
;nicht getestet, keine Ahnung, ob es was bringt
;SendMessage_(Handle, #WM_NCPAINT, 1, 0)
InvalidateRect_(Handle, 0, #True)
;RedrawWindow_(Handle, 0, 0, 7)
;UpdateWindow_(Handle)
EndIf
