フォルダアイコンについて(2)

[戻る]
COF 2009/09/03(木) 18:01:44
すいません、以前にもフォルダアイコンについて質問させて頂いたので
タイトルに「2」を付けました。

以前の投稿
http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200908/09080014.txt

以前は変更したアイコンを元に戻す質問でしたが、
今回は変更についての質問です。

対象フォルダ内にDesktop.iniを作成し、変更することには成功しています。
ただ、Desktop.iniを作成し、
PathMakeSystemFolder("対象フォルダパス");
とやっても、変更する場合と変更しない場合があります。

調べたところ、一度手動で
「直接フォルダを右クリック→カスタマイズ→アイコンの変更」で
変更したフォルダは変更されますが、
新規に作成したフォルダなど、上記動作をしていないフォルダは変更されません。

PathMakeSystemFolder()が違うのでしょうか?
ご教授願います。

環境:VC2003 MFC

COF 2009/09/03(木) 18:20:31
ソースを載せます。

//専用アイコンのパスを作成
CString strIconPath = GetIconPath();

//desktop.iniを作成
CString striniFilePath = "対象フォルダパス";
striniFilePath += '\\';
striniFilePath += ”Desktop.ini”;
HANDLE hFile = ::CreateFile(striniFilePath,
                        0,
                        FILE_SHARE_WRITE,
                        NULL,
                        CREATE_ALWAYS,
                        FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_SYSTEM,
                        NULL);

if(hFile != INVALID_HANDLE_VALUE)
{
    //Iniファイルへ書き込み
    ......

    ::CloseHandle(hFile);

    //ファイル属性をシステムファイルにする
    ::PathMakeSystemFolder("対象フォルダパス");
}

COF 2009/09/04(金) 18:49:14
[[解決]]
レスないですね...
調べてみましたが、方法としては合っていると思いますので、
もう少し自分で調べてみます。

お騒がせしました。

ZCH 2009/09/05(土) 01:28:43
やったことありませんが、
・戻り値は?
・エクスプローラが更新していないだけだったりしませんか?
・iniファイルに何を書いたのかもわかりません
・隠しファイルにしなくてもOKなんでしょうか?

COF 2009/09/05(土) 08:48:41
ZCHさま、ありがとうございます。

>・エクスプローラが更新していないだけだったりしませんか?
気になります。
エクスプローラの更新はソースコードではどうやってやるんですか?

ZCH 2009/09/06(日) 01:19:17
> エクスプローラの更新はソースコードではどうやってやるんですか?

書き方が悪かったです。
「F5とか押して変化があるか、OS再起動したらどうなるか」
という意味です。

古いスレッドには追加発言できません。