簡體   English   中英

更改文件夾圖標需要更長的時間才能顯示更新后的圖標

[英]Change of folder Icon takes longer time to show the updated icon

我在 Windows 8 上,我有 C# 代碼可以更改文件夾圖標。

這工作得很好,但需要很長時間才能刷新。 我一直在嘗試以下方法:

IntPtr path = Marshal.StringToHGlobalAuto(@"[FolderPath]");

SHChangeNotify(HChangeNotifyEventID.SHCNE_ATTRIBUTES, 
    HChangeNotifyFlags.SHCNF_PATHA, path, IntPtr.Zero);

SHChangeNotify(HChangeNotifyEventID.SHCNE_UPDATEIMAGE, 
    HChangeNotifyFlags.SHCNF_DWORD, IntPtr.Zero, IntPtr.Zero);

SHChangeNotify(HChangeNotifyEventID.SHCNE_ASSOCCHANGED,
    HChangeNotifyFlags.SHCNF_IDLIST, IntPtr.Zero, IntPtr.Zero);

這似乎對文件夾圖標沒有任何影響。 它確實刷新了我的屏幕,但圖標仍然是同一個圖標。 幾分鍾后,我可以按 F5,它將更改為我指定的文件夾圖標。

我見過一些非常丑陋的方法來解決這個問題,但我真的很想知道什么會告訴 windows 以編程方式“刷新”文件夾圖標。 我已經看到 dropbox 似乎是即時的,我認為有一個解決方案。

要更改“文件夾”圖標,需要完成兩個步驟:

Step 1. Create a desktop.ini file inside the folder for which to create the icon (the "Target Folder").
Step 2. Set the Target Folder's attribute to "System".

要完成這些步驟,請創建兩個類,即用於整理步驟的FolderIcon和IniWriter,后者僅具有一個稱為WriteValue()的靜態方法,該方法包裝了WritePrivateProfileString()Win32 API函數。

為了正確地完成所有這些工作,只需遵循以下代碼項目教程:

http://www.codeproject.com/Articles/9331/Create-Icons-for-Folders-in-Windows-Explorer-Using

您可以使用 nuget 包 [windows Icon Changer],您也可以查看源代碼,它定義了您可以做什么。 tldr:你有 pInvoke 方法來修改 desktop.ini 而不是直接編輯。 如果您手動編輯 desktop.ini,即使 SChangeNotify 也不會立即運行

[免責聲明-我是作者 https://www.nuget.org/packages/Nakshatra.Windows.IconChanger/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM