如何在desktop.ini更改时立即重新加载文件夹图标

我试图改变文件夹图标使用更改desktop.ini文件夹上编程。 我可以设置图标,但不能通过更改“IconIndex”立即更改。 该图标也在几秒钟后更改。

有没有人知道如何立即改变图标?

我已经回答了我以前的问题。 为了更方便,我会再次写一个答案。

如果您想使用Desktop.ini对任何文件夹进行任何更改,请使用一些win32 shell函数。 您不应该尝试直接编辑一个Desktop.ini。 它不会在任何文件夹的外观进行任何更改。

您可以通过以下链接获取更多关于win32 shell函数的信息。

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

例:

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); 

以下步骤适用于我(在Windows 7上):

  1. 更改desktop.ini文件
  2. 发出SHChangeNotify(SHCNE_DELETE,SHCNF_PATH,“path_to / desktop.ini”,0);
  3. 文件夹ico将被刷新

请记住包含Shlobj.h