windows - Hvordan kan jeg straks genindlæse et mappeikon, når desktop.ini ændres

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg forsøger at ændre mappeikonprogrammatisk ved at skifte desktop.ini i mappen. Jeg kan indstille et ikon, men kan ikke ændre det med det samme ved at ændre 'IconIndex'. Ikonet ændres også i flere sekunder senere.


Er der nogen der ved, hvordan man ændrer ikonet med det samme?

Bedste reference


Jeg svarede allerede ved at kommentere et svar på mit spørgsmål før. For mere bekvemmelighed vil jeg skrive et svar igen.


Hvis du vil foretage nogen ændring ved udseendet af en mappe ved hjælp af Desktop.ini, skal du bruge nogle af win32 shell funktioner. Du bør ikke prøve at redigere et Desktop.ini direkte. Det kan ikke ændres ved udseendet af en mappe.


Du kan få flere oplysninger om win32 shell funktioner via følgende link.


http://msdn.microsoft.com/en-us/library/windows/desktop/bb776426(v=vs.85).aspx[2]

Andre referencer 1


Eksempel:


SHFOLDERCUSTOMSETTINGS fcs = {0};
fcs.dwSize = sizeof(SHFOLDERCUSTOMSETTINGS);
fcs.dwMask = FCSM\_ICONFILE;
fcs.pszIconFile = iconPath;
fcs.cchIconFile = 0;
fcs.iIconIndex = iconIndex;
SHGetSetFolderCustomSettings(&fcs, folderPath, FCS\_FORCEWRITE);

Andre referencer 2


Følgende procedure fungerer godt for mig (på Windows 7):



  1. Skift desktop.ini-fil

  2. Udgave SHChangeNotify (SHCNE\_DELETE, SHCNF\_PATH, 'path\_to/desktop.ini', 0);

  3. Mappe ico bliver opdateret



Husk at inkludere Shlobj.h