簡體   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