繁体   English   中英

具有desktop.ini和即时刷新功能的自定义文件夹图标

[英]Custom folder icons with desktop.ini & instant refreshing

我的任务是创建一个簿记程序,该程序跟踪何时读取文件和文件夹的一些统计信息。 与Google云端硬盘和TortoiseSVN相似,文件夹和文件图标应反映某些更改。 例如,带有未在特定计算机上查看过的文件的USB带有“ x”,而查看过的文件则带有“ o”。

我可以追踪文件的使用这个 Windows API的,和图标(以及其它的一些选项)可以通过的desktop.ini文件改变[ 1234 ]。

在手动处理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);

如果希望使用不同的文件夹图标来分别表示不同的状态(类似于SVN),则需要图标覆盖。 更改文件夹图标不是合适的解决方案。 文件夹图标的更改将立即反映出来。如果您需要更多详细信息,请告诉我。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM