|
定期受信の場合だと、何かメールを受信してアカウントアイコンを変化させて
も、その後またしばらく経過して定期受信が動くことによって、せっかく新着に
したアイコンが元に戻されてしまうということがあるんだと思います。
ということで作戦として、マクロを2つに分けないとダメかと思います。
1つは、受信の直後に動かすマクロで、新着メールがあったら新着アイコンに
するマクロ。(新着が無いアカウントを元に戻したりはしない)
もう1つは、秀丸メールを起動/終了するタイミングか何かで、新着アイコン
をすべて元に戻すマクロです。
という作戦でどうでしょ?
「受信が一段落した時」用のマクロは以下のようにします。
loaddll "tkinfo.dll";
#c = dllfunc("RecvMailCountShow") + dllfunc("RemoteMailHotCount");
#i = 0;
$list = "";
while( #i < #c ) {
$s = "/" + dllfuncstr("GetLastRecvMailAccount", #i) + "/";
if( strstr( $list, $s) < 0 ) {
$list = $list + $s;
}
#i = #i + 1;
}
#i = 0;
while(1) {
$acc = dllfuncstr("Account", #i);
if( $acc == "" ) {
break;
}
$find = "/" + $acc + "/";
if( strstr( $list, $find ) >= 0 ) {
#n = dllfunc("LoadAccountProp", $acc);
if( dllfunc("GetAccountProp", "nAccountIcon") == 0 ) {
#n = dllfunc("SetAccountProp", "nAccountIcon", 1 );
#n = dllfunc("SaveAccountProp");
}
}
#i = #i + 1;
}
そして、「本体ウィンドウを閉じる時」や「秀丸メール終了時」に、以下のマ
クロを登録しておきます。
loaddll "tkinfo.dll";
while(1) {
$acc = dllfuncstr("Account", #i);
if( $acc == "" ) {
break;
}
#n = dllfunc("LoadAccountProp", $acc);
if( dllfunc("GetAccountProp", "nAccountIcon") == 1 ) {
#n = dllfunc("SetAccountProp", "nAccountIcon", 0 );
#n = dllfunc("SaveAccountProp");
}
#i = #i + 1;
}
ということでどうでしょ?
|
|