Icons vermehren sich

Für allgemeine Fragen zur Programmierung mit PureBasic.
3dhubiflieger
Beiträge: 123
Registriert: 27.10.2013 12:13

Icons vermehren sich

Beitrag von 3dhubiflieger »

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
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Icons vermehren sich

Beitrag von RSBasic »

Hast du ein Screenshot oder ein Video für uns? Kannst du deine Anwendung hochladen?
Gibst du auch alle Handles wieder frei?
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Bisonte
Beiträge: 2474
Registriert: 01.04.2007 20:18

Re: Icons vermehren sich

Beitrag von Bisonte »

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 .... ?!
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

Beitrag von 3dhubiflieger »

Hier mal nen Bild..unten, das eine schwarze Icon ist mein Programm. Die anderen Icons vermehren sich irgendwie.... :freak: :freak: :freak:

https://workupload.com/file/BXycuwW
Bild
Benutzeravatar
Kiffi
Beiträge: 10719
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Icons vermehren sich

Beitrag von Kiffi »

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...
a²+b²=mc²
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Icons vermehren sich

Beitrag von RSBasic »

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.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
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

Beitrag von ts-soft »

Kiffi hat geschrieben:Welche Programme sind das?
DVBViewer und das andere sagt mir im Moment auch nichts.
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.
Bild
Benutzeravatar
Kiffi
Beiträge: 10719
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Icons vermehren sich

Beitrag von Kiffi »

ts-soft hat geschrieben:
Kiffi hat geschrieben:Welche Programme sind das?
DVBViewer und das andere sagt mir im Moment auch nichts.
ahso, OK. Dann tippe ich auf wildgewordenes RunProgram().

Grüße ... Peter
a²+b²=mc²
3dhubiflieger
Beiträge: 123
Registriert: 27.10.2013 12:13

Re: Icons vermehren sich

Beitrag von 3dhubiflieger »

@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.
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Icons vermehren sich

Beitrag von RSBasic »

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.

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
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Antworten