Laden...

Icons im Explorer aktualisieren

Erstellt von dennisspohr vor 15 Jahren Letzter Beitrag vor 15 Jahren 933 Views
dennisspohr Themenstarter:in
420 Beiträge seit 2007
vor 15 Jahren
Icons im Explorer aktualisieren

Hallo zusammen,

beim Programmstart wird meine eigene Dateiendung "*.picr" manuell in der Registry installiert und mit meinem Programm verknüpft. Dieser Schritt funktioniert soweit.
Das Problem ist, das ich den Explorer neustarten muss, um das neue Icon meiner Datei anzuzeigen. Wie kann ich dem Explorer mitteilen, das er sich seine Icon-Informationen neu läd?

Danke euch!

Gruß Dennis

dennisspohr Themenstarter:in
420 Beiträge seit 2007
vor 15 Jahren

Ich habe es mal bei verschiedenen Setups beobachtet - dort funktionert es auch. Sobald das Setup abgeschlossen ist, werden die neuen Icons im Explorer angezeigt.

dennisspohr Themenstarter:in
420 Beiträge seit 2007
vor 15 Jahren

Hallo zusammen,

mal ein letztes "nachhacken":
Ich habe für mein Problem immernoch keine Lösung gefunden, kann mir wirklich keiner weiterhelfen?

Gruß Dennis

3.511 Beiträge seit 2005
vor 15 Jahren

Hallo,

an sich muss man den Explorer nur die richtige Nachricht schicken, damit er sich aktualisiert. Oder mann verwendet die Shell API.

Für die Shell API kann SHChangeNotify interessant sein.

Und um die richtige Nachricht herauszubekommen, die dem Explorer gesendet wird, wenn sich Icons ändern müsste man einfach den Spy++ im Hintergrund laufen lassen und alle Windows Nachrichten abfangen.

Im Explorer wird bei F5 z.B. WM_COMMAND mit der Nachricht WM_USER + 401 mit lParam = 0 und wParam = 0 gesendet.

Zudem könntest du ein SendMessage mit der Nachricht WM_SETTINGCHANGED and das Fenster HWND_BROADCAST schicken.

Naja, irgendwas von dem sollte funktionieren 😃

"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)

dennisspohr Themenstarter:in
420 Beiträge seit 2007
vor 15 Jahren

Hallo Khalid,

vielen Dank für deine Hilfe, ich habe mein Problem gelöst bekommen. Unterstützt wurde ich durch diesen Post, der die Lösung bereits enthält.

Danke!

Gruß Dennis