Hi ...
Ich habe hier ein recht komplexes Programm bei dem ein kleines Problem auftaucht, ich aber bislang nicht dahinter gekommen bin, wie ich es debuggen könnte.
Kann ich einen Breakpoint setzen wenn das Icon geändert wird ? Mein Programmicon in der Taskleiste wird irgendwo im Programmverlauf gelöscjt somit ist nur noch das Default-Icon von Windows zu sehen - sehr unschön ...
Vielleicht hat jemand einen Tip, wie ich auf das Icon Change einen Breakpoint setzen kann um das ganze einzukreisen ?
Hallo,
eigentlich kann das Programm-Icon in der Taskleiste nachträglich nicht mehr geändert werden, denn es wird einmalig beim Starten der Anwendung gesetzt.
Ändert sich denn zeitgleich auch das Icon des Main-Windows?
Und bei welcher Windows-Version tritt dies auf? Windows benutzt intern für die Icons einen Cache, evtl. wird dieser vom System aus (d.h. von einem anderen Prozess) manipuliert?
Schau auch mal in Application-Icon in der Taskleiste ändert sich nicht (auch wenn bei dir das Gegenteil passiert) - dort sind noch ein paar weitere Infos und Links angegeben.
Mein Programmicon in der Taskleiste wird irgendwo im Programmverlauf gelöscjt somit ist nur noch das Default-Icon von Windows zu sehen - sehr unschön ...
Leider nicht direkt, denn das Setzen des Icons läuft über die Win32.
In Visual Studio kannst Du über Debug -> New Breakpoint
jedoch Function Breakpoints setzen.
Der Name der Function ist zB sowas wie (weiß leider nicht alle Events, die hier in Frage kommen auswendig)
user32!SendMessageW
user32!SendMessageA
und bei der Condition kannst Du dann die Einschränkung setzen. Auch hier weiß ich nicht alle Conditions, aber Google sagt für user32!SendMessageW
ist es (UINT)Message == 0x0080 // WM_SETICON
Vielleicht hat jemand einen Tip, wie ich auf das Icon Change einen Breakpoint setzen kann um das ganze einzukreisen ?
Üblicherweise sollte man sich eine Klasse schreiben (in dem Fall ein Provider, also eine einfache Abstraktion), sodass es nur eine einzige Stelle mit dem Setzen des Icons gibt.
So kann man zentral etwas beim Icon-Change machen - aber dafür ist es ja leider wohl zu spät 😃
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code