none
アイコンオーバーレイを最新にする方法 RRS feed

  • 質問

  • C#のプログラムから、”あるファイル”または”あるフォルダ以下の全ファイル”について
    アイコンオーバーレイを最新にする方法をお教えください。
    Ctrl+R で手動で最新にするのではなく、プログラムから最新にしたいのです。
    この様な C#クラス・メソッドが見当たりません。
    2010年3月15日 9:16

回答

  • HiroXX さん、こんにちは。

    アイコンオーバーレイを最新にしたいとのことですが、どの画面のことでしょうか?
    Windows の エクスプローラーに表示される内容のことでしたら、SHChangeNotify 関数でリフレッシュできると思います。

    SHChangeNotify Function
    http://msdn.microsoft.com/en-us/library/bb762118(VS.85).aspx

    サンプルコードや詳しい日本語の情報については、関数名で検索するといろいろな情報が見つかると思います。

    他にも何かご存じの方がいらしたら、ぜひ投稿してください!それでは。

     

    2010年3月19日 7:02
  • アドバイスありがとうございます。

    ご指摘の通り、Windowsのエクスプローラーに表示される内容のことです。

    いろいろ改善点はあるとは思いますが、とりあえず、以下で動作確認までできました。 報告まで。

    using System.Runtime.InteropServices;

    [DllImport("shell32.dll", CharSet = CharSet.Unicode, ExactSpelling = true)]
    static public extern void SHChangeNotify(uint wEventId, uint uFlags, IntPtr dwItem1, IntPtr dwItem2);

    SHChangeNotify((uint)0x08000000, (uint)0x1000, (IntPtr)null, (IntPtr)null);

    2010年3月24日 8:23

すべての返信

  • HiroXX さん、こんにちは。

    アイコンオーバーレイを最新にしたいとのことですが、どの画面のことでしょうか?
    Windows の エクスプローラーに表示される内容のことでしたら、SHChangeNotify 関数でリフレッシュできると思います。

    SHChangeNotify Function
    http://msdn.microsoft.com/en-us/library/bb762118(VS.85).aspx

    サンプルコードや詳しい日本語の情報については、関数名で検索するといろいろな情報が見つかると思います。

    他にも何かご存じの方がいらしたら、ぜひ投稿してください!それでは。

     

    2010年3月19日 7:02
  • アドバイスありがとうございます。

    ご指摘の通り、Windowsのエクスプローラーに表示される内容のことです。

    いろいろ改善点はあるとは思いますが、とりあえず、以下で動作確認までできました。 報告まで。

    using System.Runtime.InteropServices;

    [DllImport("shell32.dll", CharSet = CharSet.Unicode, ExactSpelling = true)]
    static public extern void SHChangeNotify(uint wEventId, uint uFlags, IntPtr dwItem1, IntPtr dwItem2);

    SHChangeNotify((uint)0x08000000, (uint)0x1000, (IntPtr)null, (IntPtr)null);

    2010年3月24日 8:23