|
「現在のフォルダ開閉状態を記録」するマクロと、その記録した「開閉状態を再
現」するマクロを一つ例示します。再現するマクロを起動時自動実行にしておけば、
毎回同じ状態になると思います(ちょっと時間はかかりますね)。
全般的な設定−フォルダ−マルチアカウントを「複数アカウントのフォルダを同時
に展開できるようにする」にしておく必要があります。
(秀まるおさんご示唆の account.bin は利用してないです(バッチでは使えそうで
すが、マクロで使うのはちょっと無理かな))
// 現在のフォルダの開閉状態を記録するマクロ
// GetFolderStatus.mac
//
$ini = macrodir + "\\FOLDERS.INI";
$key = "Folders";
loaddll "TKinfo.dll";
#n = dllfunc("DisableDraw", 1);
writeinistr $ini, $key, 0, 0;
$account = dllfuncstr("CurrentAccount");
$folder = dllfuncstr("CurrentFolder");
writeinistr $ini, $key, "account", $account;
writeinistr $ini, $key, "folder", $folder;
#i = 0;
#n = dllfunc("SelectFolder", dllfuncstr("Account", 0), "");
$a = dllfuncstr("CurrentAccount");
$f = dllfuncstr("CurrentFolder");
while ($a != "") {
#p = dllfunc("GetFolderExpandState", $a, $f);
writeinistr $ini, $key, str(#i), $a;
writeinistr $ini, $key, str(#i+1), $f;
writeininum $ini, $key, str(#i+2), #p;
#i = #i + 3;
$s = dllfuncstr("GetNextFolder", $a, $f);
#x = strstr( $s, "\\");
if (#x >= 0) {
$a = leftstr($s, #x);
$f = midstr($s, #x + 1, 256);
} else {
$a = $s;
$f = "";
}
}
writeininum $ini, $key, "number", #i - 1;
#n = dllfunc("SelectFolder", $account, $folder);
#n = dllfunc("EnableDraw");
// フォルダの開閉状態を再現するマクロ
// SetFolderStatus.mac
//
$ini = macrodir + "\\FOLDERS.INI";
$key = "Folders";
loaddll "TKinfo.dll";
#n = dllfunc("DisableDraw", 1);
#i = getininum($ini, $key, "number");
while (#i > 0) {
$a = getinistr($ini, $key, str(#i - 2));
$f = getinistr($ini, $key, str(#i - 1));
#p = getininum($ini, $key, str(#i));
#n = dllfunc("SelectFolder", $a, $f);
if (#p < 2) #n = dllfunc("ExpandFolder", #p);
#i = #i - 3;
}
$account = getinistr($ini, $key, "account");
$folder = getinistr($ini, $key, "folder");
#n = dllfunc("SelectFolder", $account, $folder);
#n = dllfunc("EnableDraw");
|
|