How can I immediately reload a folder icon when desktop.ini is changed

后端 未结 3 1585
遥遥无期
遥遥无期 2021-01-18 02:00

I\'ve been trying to change folder icon programmatically using changing desktop.ini on the folder. I was able to set an icon, but couldn\'t change it immediately through cha

相关标签:
3条回答
  • 2021-01-18 02:55

    I already answered by commenting a reply at my question before. For more convenience, I will write an answer again.

    If you want to make any change at an appearance of any folder using Desktop.ini, use some of win32 shell functions. You shouldn't try to edit a Desktop.ini directly. It doesn't get to make any change at an appearance of any folder.

    You could get more information of win32 shell functions through the following link.

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

    0 讨论(0)
  • 2021-01-18 02:55

    The following procedure works well for me (on Windows 7):

    1. Change desktop.ini file
    2. Issue SHChangeNotify(SHCNE_DELETE,SHCNF_PATH,"path_to/desktop.ini",0);
    3. Folder ico will be refreshed

    Remember to include Shlobj.h

    0 讨论(0)
  • 2021-01-18 02:58

    Example:

    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);
    
    0 讨论(0)
提交回复
热议问题