9

我一直在尝试使用更改文件夹上的 desktop.ini 以编程方式更改文件夹图标。我可以设置一个图标,但无法通过更改“IconIndex”立即更改它。几秒钟后,图标也发生了变化。

有人知道如何立即更改图标吗?

4

3 回答 3

1

我之前已经通过评论我的问题的回复来回答了。为了方便,我再写一个答案。

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

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

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

于 2013-04-01T09:21:55.887 回答
1

例子:

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);
于 2013-10-18T03:11:26.553 回答
0

以下过程对我很有效(在 Windows 7 上):

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

记得包含 Shlobj.h

于 2015-07-26T22:19:54.130 回答