gpt4 book ai didi

c++ - 带有 desktop.ini 和即时刷新的自定义文件夹图标

转载 作者:可可西里 更新时间:2023-11-01 11:55:54 25 4
gpt4 key购买 nike

我的任务是创建一个簿记程序,用于跟踪文件和文件夹何时被读取的一些统计数据。与 Google Drive 和 TortoiseSVN 类似,文件夹和文件图标应反射(reflect)某些变化。例如,带有未在某台计算机上查看过的文件的 USB 带有“x”,而查看过的文件则带有“o”。

我可以使用 this 跟踪文件使用情况Windows API 和图标(以及其他一些不错的选项)可以通过 desktop.ini 文件进行更改 [ 1 , 2 , 3 , 4 ].

在手动修改 desktop.ini 文件的同时,我已经成功地更改了图标、描述和其他有趣的东西。问题是新的更改不会更新,直到 Windows 再次解析 desktop.ini 文件。这往往会在几秒到几分钟之间不一致地发生。 F5 刷新不会强制重新解析,但会在重新解析发生时更新图像。

如何强制 Windows 手动和(更重要的是)在 C++ 程序中重新解析 desktop.ini 文件?

是否有可以立即更改文件夹图标的替代 C++ Windows API?

最佳答案

如果您编辑 desktop.ini,它的资源管理器将不会自动刷新。使用 SHGetSetFolderCustomSettings 写入:

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

关于c++ - 带有 desktop.ini 和即时刷新的自定义文件夹图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16945892/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com