|
> 「フォルダ設定」を開いて「OK」で閉じると変化します。
調べてみたら、実は高速化のためにフォルダ毎設定の一部をlist.binファイル
にも持つようにしてて、そこが更新されないとアイコンも書き換わらないようで
した。
ですが、list.binファイルはメモリ上にキャッシュされることが多くて、そこ
をうまく更新させる手段が、いろいろトライしてみた限りは無いようです。
とりあえず、アイコンだけなんとかするとしたら、以下のマクロでなんとか出
来ました。
question "フォルダ毎設定ファイルをコピーしていいですか?";
if( result == yes ) {
loaddll "tkinfo.dll";
$src = "c:\\temp\\prop.bin";
$dest = dllfuncstr("HomeDir") + dllfuncstr("CurrentAccount")
+ "\\" + dllfuncstr("CurrentFolder") + "\\prop.bin";
#n = dllfunc("Bypass_CopyFile", $src, $dest, 0);
#n = dllfunc("RefreshFolder");
#icon = dllfunc("GetFolderIcon");
#n = dllfunc("SetFolderIcon", #icon);
}
list.binにキャッシュしてる情報は他にもあるので、それらも含めてちゃんと
更新するとなると、その手段は現状無いことになります。
やはりprop.binを無理矢理書き換えてって方法は無理があるので、
SetFolderPropFlags関数を別途追加することにします。
|
|