2012-03-12 4 views
0

私のアプリケーションはいくつかのフォルダを作成し、特定のアクティビティに応じてアイコンを変更する必要があります。 SHChangeNotifyを使用してフォルダに通知する方法

は、私は、以下の機能を使用しようとしました、私がリフレッシュなっている SHChangeNotify(SHCNE_ASSOCCHANGED, 0x1000, 0,0);、 デスクトップ全体を使用する場合は、フォルダ

SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNE_ALLEVENTS | SHCNE_UPDATEIMAGE | SHCNE_UPDATEDIR |SHCNF_PATH | SHCNF_FLUSHNOWAIT, L"C:\\Music\\Test", 0);

をリフレッシュしていないようです。

フォルダを最新表示する方法を教えてください。

答えて

1

誤った機能を使用している可能性があります。特に、SHCNE_ASSOCCHANGEDのドキュメントでは、uFlagsパラメータに "SHCNF_IDLIST"を指定する必要があります.dwItem1とdwItem2は使用されず、NULLである必要があります。 "あなたはSHCNF_IDLISTを渡さず、dwItem1はパス文字列であり、NULLではありません。また、2番目のパラメータは、SHCNF_*フラグの単なる組み合わせである必要があります。無効なSHCNE_*フラグを追加しています。

L"C:\\Music\\Test"にファイルを書き込んでいて、エクスプローラに通知する場合は、SHCNE_CREATEを使用してください。フォルダを追加すると、SHCNE_MKDIRが使用されます。どちらの場合も、dwItem1は、それがで作成されています、いない親フォルダ作成されたアイテムへのパスでなければなりません

+1

ありがとうございますMSalters、私は変更を行い、それをテストします。 – kanden

+0

あなたのソリューションは動作しているようですが、私は他のモジュールを完成させた後で完全なテストを行うことができます。 – kanden

+0

私のアプリケーションは今すぐテストできる状態です。あなたの提案はまだ機能していません。新しいアイコンは表示されません。 – kanden

0

この SHChangeNotify試してみてください(SHCNE_UPDATEDIR、SHCNF_PATH | SHCNF_FLUSHNOWAIT、「パス」、NULL)を。 "Path"は更新するフォルダです。

関連する問題