PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Delphi: Nach Dateityp-Registrierung Explorer refreshen?


aths
2005-01-09, 18:02:17
Folgendes Problem: Durch Schreiben in die Registry registriere ich einen neuen Dateityp, inkl. neuem Icon. Diese Prozedur wird mit RegFlushKey abgeschlossen. Trotzdem sind die neuen Icons erst nach einem Windows-Neustart sichtbar. Drückt man im Explorer F5, bleiben die alten Icons auch. Wie erreicht man einen sofortigen Refresh?

Crushinator
2005-01-10, 14:34:42
Es gibt leider keinen einfachen API-Aufruf dafür. Man muß den umständlichen Weg gehen, der Shell erstmal per Registry eine Änderung der Window- oder Icon-Größen unterzujubeln. Einen ähnlichen Ansatz wie TweakUI es tut, findest Du hier (http://www.swissdelphicenter.ch/en/showcode.php?id=1054), sogar in Delphi. :)

Demirug
2005-01-10, 15:22:54
Da ich das bisher nicht nötigt hatte habe ich es selbst nie ausprobiert aber eigentlich sollte SHChangeNotify diese Aufgabe erledigen.

Crushinator
2005-01-10, 15:38:18
Da ich das bisher nicht nötigt hatte habe ich es selbst nie ausprobiert aber eigentlich sollte SHChangeNotify diese Aufgabe erledigen. SHChangeNotify forcet nur den selben Refresh des Explorers, welchen man mit F5 auch erreichen kann, was aths aber nicht hilft. Der Icon Cache hingegen wird nur dann erneut gefüllt, wenn man der Shell mitteilt, daß sich im System etwas gravierendes verändert hat, nämlich WindowMetrics oder genauer gesagt Icongrößen. :)

aths
2005-01-12, 22:19:02
SHChangeNotify forcet nur den selben Refresh des Explorers, welchen man mit F5 auch erreichen kann, was aths aber nicht hilft. Der Icon Cache hingegen wird nur dann erneut gefüllt, wenn man der Shell mitteilt, daß sich im System etwas gravierendes verändert hat, nämlich WindowMetrics oder genauer gesagt Icongrößen. :)Tatsächlich werden die Icons neu aufgebaut, aber der gewünschte Effekt stellt sich nicht ein. Das Bild bleibt das gleiche. Man merkt daran, dass das Kontextmenü erweitert / wieder gekürzt wurde, dass das Schreiben in die Registry erfolgreich war. Nach einem Windows-Neustart sind auch die neuen (bzw. alten) Icons zu sehen. Nur zur Laufzeit klappt das nicht.

Crushinator
2005-01-13, 11:31:02
Komische Sache, duz! Bei mir klappt duz naymlich. ;(

aths
2005-01-13, 16:39:12
Bei mir leider nicht :(

Bei mir klappt allerdings auch was anderes nicht: Testen, ob das Entry schon da ist. Da muss ich noch mal gucken wie ich das im aTuner gelöst habe (wo es funzt, zu gucken, ob ein Entry überhaupt existiert.)

edit: Nun klappts. Komisch :eyes: