キャッシュクリア後に…No.13300
ぷれりゅ〜ど さん 03/06/12 12:00
 
お世話になります、ぷれりゅ〜どです。

何らかの異常終了時に「キャッシュをクリアしますか?」と
表示されて「はい」を選択します。
キャッシュ(多分、list.bin?)をクリアした後は、
スレッド表示にしていたのが全て一覧表示に戻る様ですが、
それは至極当然というのは、分かります。

しかし…

フォルダが多いと、一つずつを表示してスレッド表示に
戻さないとダメなのでしょうか?(^^;
設定を見落としてるだけかとも思いましたが、見付けなくて。
設定が無ければ、マクロで対応出来たりしませんか?

環境はWin2K(SP3)、鶴亀2.90です。

宜しくお願いします。

[ ]
RE:13300 キャッシュクリア後に…No.13305
たまがわ さん 03/06/12 15:48
 
ぷれりゅ〜どさん、こんにちは。

> フォルダが多いと、一つずつを表示してスレッド表示に
> 戻さないとダメなのでしょうか?(^^;
> 設定を見落としてるだけかとも思いましたが、見付けなくて。
> 設定が無ければ、マクロで対応出来たりしませんか?

 マクロでよければですが、以下のようなもので役立つでしょうか?

 記録用マクロは、全フォルダの「折り畳み・展開」「範囲」「一覧・スレッド」の
状態を記録するものです。
 復元用マクロは、記録用マクロで記録したデータを元に、状態を復元するものです。

 自分の気に入った状態を一度記録しておく手間が必要ですけど。

// 記録用マクロ
loaddll "TKinfo.dll";
openreg "CURRENTUSER", "Software\\Hidemaruo\\TuruKame\\Config";
#flag = getregnum("AutoSelectUnread");
if (#flag && 3) {
    writeregnum "AutoSelectUnread", 0;
    closereg;
    #n = dllfunc("EnvChanged");
} else {
    closereg;
}
#n = dllfunc("DisableDraw", 1);
$ini = macrodir + "\\FOLDERS.INI";
$key = "Folders";
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);
    #n = dllfunc("SelectFolder", $a, $f);
    #v = dllfunc("ViewArea");
    #t = dllfunc("IsThreadView");
    writeinistr $ini, $key, str(#i), $a;
    writeinistr $ini, $key, str(#i + 1), $f;
    writeininum $ini, $key, str(#i + 2), (#t + 1) * 32 + (#v + 1) * 4 + #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;
execmacro "SetFolderStatus.mac";
if (#flag && 3) {
    openreg "CURRENTUSER", "Software\\Hidemaruo\\TuruKame\\Config";
    writeregnum "AutoSelectUnread", #flag;
    closereg;
    #n = dllfunc("EnvChanged");
}
#n = dllfunc("EnableDraw");


// 復元用マクロ
loaddll "TKinfo.dll";
openreg "CURRENTUSER", "Software\\Hidemaruo\\TuruKame\\Config";
#flag = getregnum("AutoSelectUnread");
if (#flag && 3) {
    writeregnum "AutoSelectUnread", 0;
    closereg;
    #n = dllfunc("EnvChanged");
} else {
    closereg;
}
#n = dllfunc("DisableDraw", 1);
$ini = macrodir + "\\FOLDERS.INI";
$key = "Folders";
#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));
    #v = (#p / 4) & 7;
    #t = (#p / 32) & 3;
    #p = #p & 3;
    #n = dllfunc("SelectFolder", $a, $f);
    if (#p < 2) #n = dllfunc("ExpandFolder", #p);
    if (#v) #n = dllfunc("SetViewArea", #v - 1);
    if (#t) #n = dllfunc("SetThreadView", #t - 1);
    #i = #i - 3;
}
$account = getinistr($ini, $key, "account");
$folder = getinistr($ini, $key, "folder");
#n = dllfunc("SelectFolder", $account, $folder);
if (#flag && 3) {
    openreg "CURRENTUSER", "Software\\Hidemaruo\\TuruKame\\Config";
    writeregnum "AutoSelectUnread", #flag;
    closereg;
    #n = dllfunc("EnvChanged");
}
#n = dllfunc("EnableDraw");

[ ]
RE:13300 キャッシュクリア後に…No.13307
秀まるお2 さん 03/06/12 16:09
 
 キャッシュをクリアするというのは、あくまでデバッグ用というか、つまり、
キャッシュをクリアしない限り鶴亀メールが何度も落ちてしまう状況に至った場
合のフェールセーフ用です。なので、そういう状況に陥らない限り、キャッシュ
をクリアしなくて大丈夫なはずです。

 それで解決すると思います。

[ ]
RE:13305 キャッシュクリア後に…No.13308
haru さん 03/06/12 16:39
 
 横から、失礼します。

> マクロでよければですが、以下のようなもので役立つでしょうか?

> 記録用マクロは、全フォルダの「折り畳み・展開」「範囲」「一覧・スレッド」の
>状態を記録するものです。
> 復元用マクロは、記録用マクロで記録したデータを元に、状態を復元するものです。

> 自分の気に入った状態を一度記録しておく手間が必要ですけど。

>// 記録用マクロ
 を実行した所、

>execmacro "SetFolderStatus.mac";

 ここで、止まってしまいます。
 SetFolderStatus.macの入手方法を教えていただきたいのですが。
 よろしくお願いします。

[ ]
RE:13308 キャッシュクリア後に…No.13309
tnobu2 さん 03/06/12 16:47
 
>>// 記録用マクロ
> を実行した所、
>
>>execmacro "SetFolderStatus.mac";
>
> ここで、止まってしまいます。
> SetFolderStatus.macの入手方法を教えていただきたいのですが。
> よろしくお願いします。

>>// 保存用マクロ
  以下が SetFolderStatus.mac でしょう。

[ ]
RE:13308 キャッシュクリア後に…No.13310
たまがわ さん 03/06/12 17:01
 
haruさん、こんにちは。

> >// 記録用マクロ
>  を実行した所、
>
> >execmacro "SetFolderStatus.mac";
>
>  ここで、止まってしまいます。
>  SetFolderStatus.macの入手方法を教えていただきたいのですが。
>  よろしくお願いします。

 コメントにマクロ名を書いていたのに、アップするときに間違って消してしまいま
した。失礼しました。

 復元用マクロの方に「SetFolderStatus.mac」という名前を付けてください。

[ ]
RE:13310 キャッシュクリア後に…No.13315
haru さん 03/06/13 08:57
 
> コメントにマクロ名を書いていたのに、アップするときに間違って消してしまいま
>した。失礼しました。
> 復元用マクロの方に「SetFolderStatus.mac」という名前を付けてください。
 わかりました。
 ありがとうございます。

[ ]
RE:13300 キャッシュクリア後に…No.13330
ぷれりゅ〜ど さん 03/06/15 10:21
 
たまがわさん、tnobu2さん、haruさん、秀まるお2さん、こんにちは。

ぷれりゅ〜どです、お返事遅くなって申し訳ありません。
ちょっと出張に出てました(^^;

帰ってきたら、たまがわさん、素敵なマクロのご提供、
有り難う御座います <(_ _)> 凄く嬉しいですし感動してます(^^)

秀まるお2さん、
あのメッセージ、何となくなんですが
「クリア」しないと何となくマズい様な気になっちゃうんです(^^;
でも基本的にはクリアしなくても大丈夫との事、了解しました。

皆様有り難う御座いました、お世話になりました。

[ ]
RE:13305 キャッシュクリア後に…No.13575
haru さん 03/06/30 15:51
 
たまがわさん、こんにちは。

> 記録用マクロは、全フォルダの「折り畳み・展開」「範囲」「一覧・スレッド」の
>状態を記録するものです。
> 復元用マクロは、記録用マクロで記録したデータを元に、状態を復元するものです。

 以前教えていただいた記録用マクロを使用させていただいています。
 フォルダ毎にソート方法も記録しておいて、復元したいのですが。
 もしも、よろしければ、よろしくお願いします。

[ ]
RE:13575 キャッシュクリア後に…No.13576
たまがわ さん 03/06/30 16:34
 
haruさん、こんにちは。
>  以前教えていただいた記録用マクロを使用させていただいています。
>  フォルダ毎にソート方法も記録しておいて、復元したいのですが。

 これでいけると思います。


// 記録用マクロ
// GetFolderStatus.mac
loaddll "TKinfo.dll";
openreg "CURRENTUSER", "Software\\Hidemaruo\\TuruKame\\Config";
#flag = getregnum("AutoSelectUnread");
if (#flag && 3) {
    writeregnum "AutoSelectUnread", 0;
    closereg;
    #n = dllfunc("EnvChanged");
} else {
    closereg;
}
#n = dllfunc("DisableDraw", 1);
$ini = macrodir + "\\FOLDERS.INI";
$key = "Folders";
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);
    #n = dllfunc("SelectFolder", $a, $f);
    #v = dllfunc("ViewArea");
    #t = dllfunc("IsThreadView");
    #s = dllfunc("SortMethod");
    writeinistr $ini, $key, str(#i), $a;
    writeinistr $ini, $key, str(#i + 1), $f;
    writeininum $ini, $key, str(#i + 2), (#s + 1) * 128 + (#t + 1) * 32 + (#
v + 1) * 4 + #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;
execmacro "SetFolderStatus.mac";
if (#flag && 3) {
    openreg "CURRENTUSER", "Software\\Hidemaruo\\TuruKame\\Config";
    writeregnum "AutoSelectUnread", #flag;
    closereg;
    #n = dllfunc("EnvChanged");
}
#n = dllfunc("EnableDraw");


// 復元用マクロ
// SetFolderStatus.mac
loaddll "TKinfo.dll";
openreg "CURRENTUSER", "Software\\Hidemaruo\\TuruKame\\Config";
#flag = getregnum("AutoSelectUnread");
if (#flag && 3) {
    writeregnum "AutoSelectUnread", 0;
    closereg;
    #n = dllfunc("EnvChanged");
} else {
    closereg;
}
#n = dllfunc("DisableDraw", 1);
$ini = macrodir + "\\FOLDERS.INI";
$key = "Folders";
#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));
    #s = (#p / 128) & 31;
    #v = (#p / 4) & 7;
    #t = (#p / 32) & 3;
    #p = #p & 3;
    #n = dllfunc("SelectFolder", $a, $f);
    if (#p < 2) #n = dllfunc("ExpandFolder", #p);
    if (#v) #n = dllfunc("SetViewArea", #v - 1);
    if (#t) #n = dllfunc("SetThreadView", #t - 1);
    if (#s) #n = dllfunc("SetSortMethod", #s - 1);
    #i = #i - 3;
}
$account = getinistr($ini, $key, "account");
$folder = getinistr($ini, $key, "folder");
#n = dllfunc("SelectFolder", $account, $folder);
if (#flag && 3) {
    openreg "CURRENTUSER", "Software\\Hidemaruo\\TuruKame\\Config";
    writeregnum "AutoSelectUnread", #flag;
    closereg;
    #n = dllfunc("EnvChanged");
}
#n = dllfunc("EnableDraw");

[ ]
RE:13576 キャッシュクリア後に…No.13587
haru さん 03/07/01 09:48
 
たまがわさん、こんにちは。

>>  以前教えていただいた記録用マクロを使用させていただいています。
>>  フォルダ毎にソート方法も記録しておいて、復元したいのですが。
> これでいけると思います。
 うまくいきました。
 ありがとうございます。

[ ]