ファイルとフォルダにオーバーレイアイコンを表示するために、IShellIconOverlayIdentifierインターフェイスを使用するWindowsシェル拡張があります。私の内線番号はTortoiseCVSまたはTortoiseSVNのように少しです。プログラムでWindowsエクスプローラを更新できますか?
場合によっては、Windowsエクスプローラですべてのアイコンを再描画する必要があります。これを行うために、私はこのようなSHChangeNotifyを呼び出す:
SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, NULL, NULL)
これは、開いているすべてのエクスプローラウィンドウのデスクトップと右側のペインを更新します。エクスプローラウィンドウの左側にあるフォルダツリーは更新されません。
だから私はこのようなWM_SETTINGCHANGEを送信しようとした:Vista上
SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0)
を、これはフォルダツリーではなく、右側のペインを更新します。
SHChangeNotify()
とそれに続くWM_SETTINGCHANGE
の組み合わせは、Vistaではかなりうまくいくようです。しかし、それが表示されても、私はまだXP上のフォルダツリーをリフレッシュできません。
これをより良くする方法はありますか?
XP用のより良いソリューションはありますか?
送信SHCNE_ASSOCCHANGED
は、頭の上のクラブ探検のようなビットです。デスクトップ全体がかなり激しくリフレッシュされ、開いているエクスプローラウィンドウがスクロール位置を失うことがあります。少し暴力的なものはありますか?
XP用のTweakUIには、「修復アイコンキャッシュ」オプションがあります。 SPY ++を使用して、その動作を確認することができます。 –
ヒュー!あなたの問題を解決できましたか? – A9S6