2017-08-28 113 views
0

我現在正在編程一個小工具,需要立即刷新文件夾圖標。
我們知道,在Windows中,我們可以通過下面的步驟手動修改文件夾圖標:
如何在Windows中立即刷新文件夾圖標

  1. 右鍵單擊該文件夾
  2. 選擇「自定義」標籤
  3. 點擊「更改圖標」

我也知道如何設置desktop.ini文件來修改它的圖標。但需要很長時間才能刷新(大約30秒)。

我想知道是否有一種常見的方式來立即解決它,無論使用C/C++或腳本。或者Windows從不提供一種方式?

如果可能,歡迎任何代碼。

+3

請詳細說明。不確定你的意思是哪個「文件夾圖標」。 –

+0

右鍵單擊Windows中的任何文件夾時,可以通過選擇「自定義」標籤,「更改圖標」來設置其圖標。我只想要一種常用的方法來自動實現它。 –

+0

請[編輯]你的問題,並把澄清__在這裏。 –

回答

3

這個小C程序將做的工作:

#include <windows.h> 
#include <ShlObj.h> 

const char folderpath[] = "C:\\Your-Folder"; 

int main() { 
    SHChangeNotify(SHCNE_UPDATEITEM, SHCNF_PATH, folderPath, NULL); 
} 

folderpath是其圖標將被更新 以下操作順序在這裏工作得很好的文件夾的完整路徑(視窗10 64位):

Desktop.ini文件

[.ShellClassInfo] 
IconResource=C:\Windows\System32\SHELL32.dll,12 
  1. 創建文件夾X
  2. 將上面的Desktop.ini文件複製到文件夾中。在X文件夾的圖標不會改變
  3. 運行上述
  4. 小C程序被顯示在X文件夾的新圖標
  5. 刪除的點2在X文件夾的圖標所創建的文件Deskop.ini不會改變
  6. 上方運行
  7. 顯示在X文件夾原來的文件夾圖標的小C程序

檢查SHChangeNotify功能的更多細節。

+0

感謝您提供詳細的解決方案!我會試一試。再次感謝。 –

+0

@NekoGong如果有效,請不要忘記[接受](https://meta.stackexchange.com/questions/23138/how-to-accept-the-answer-on-stack-overflow)答案,所以其他讀者知道這是解決您的問題的正確方案。 –

+1

如果'SHChangeNotify(SHCNE_UPDATEITEM,SHCNF_PATH,folderPath,NULL);'就足夠了。當只有一個圖標發生變化時,應該比使整個圖標緩存無效更有效。在[OldNewThing](https://blogs.msdn.microsoft。COM/oldnewthing/20150903-00/P = 91671)。 – zett42