マクロで確認メッセージをパスしたいNo.23048
りーや さん 05/06/02 09:05
 
鶴亀メールはもう長いこと愛用させていただいてます。大謝

スパム対策で、メールヘッダーで判別の付くものはフリーソフトのSpam Mail Killer
でサーバーから削除し、こぼれたものは鶴亀メールの迷惑メールフィルターでゴミ箱
へ直行ということにして、すごく気分よく使えるようになりました。
ですが、メールアカウントを7つ登録しているので、受信時にどのゴミ箱に落ちたの
か判断がつきません。「終了時にゴミ箱を空にする」も外したくないので落とす前に
ゴミ箱を見てまわるのですがこれが毎回だとちょっと面倒。ということで、すべてゴ
ミ箱の中身を一つのゴミ箱に集めるという初鶴亀マクロに挑戦してみました。

#n = dllfunc( "GetFolderMailCount", "post", "ゴミ箱", "all");
if( #n != 0 ) {
  #n = dllfunc( "SelectFolder", "post", "ゴミ箱" );
  #n = sendmessage( hidemaruhandle(0), 0x0111, 40008, 0);
  #n = dllfunc( "Move", "wk", "ゴミ箱" );
}

というのをアカウントの数の分だけ作って、これでいけるのかと思ったら、メールが
存在するアカウントでは、アカウントまたがりの移動で一々確認メッセージがポップ
アップして止まります。「アカウントをまたがってメールを移動/コピーするとき
(I)」のチェックを外せば止まらずに動くのですが、私の様な性格だと迷子メールを
作らないためには、このチェックは外したくありません。

でもマクロの中で確認求められても・・・「disable確認msg」みたいな方法はあるの
でしょうか?

結局、Move の前に以下のように一行いれて非同期でWSH起動して、
run "WScript C:\\WSH\\TK\\SendKey_Enter.js";
この中で、コンマ3秒待ってから、アクティブウインドにエンターをキー送信すると
いう荒業でなんとか流れるようになったのですが・・・

もうちょっとスマートに解決する方法って無いものでしょうか?

[ ]
RE:23048 マクロで確認メッセージをパスしNo.23049
秀まるお2 さん 05/06/02 10:55
 
 そのJavaScriptでやるのと原理的には同じですが、鶴亀のtkinfo.dllに、
SetAutoPushTimerMilliという関数があります。それでメッセージボックス類を
自動プッシュできます。こっちの方は「3秒後」と言わず、ダイアログボックス
が出たら一瞬でボタンが押せます。

 他に、設定を一時的に変更しつつ、EnvChanged関数を使うという手もあります。
こっちの方が確実かもしれないです。確認メッセージ関係は、レジストリ中の
"Confirm"というDWORD値で決まるんですが、問題の「アカウントをまたがって
…」は、そこの0x20のビットがONかOFFかってことになります。なので、

    openreg "CURRENTUSER", "Software\\Hidemaruo\\TuruKame\\Config";
    #flags = getregnum( "Confirm" );
    writeregnum "Confirm", #flags & 0xFFFFFFDF;
    #n = dllfunc("EnvChanged");

    ....  メール移動の処理

    writeregnum "Confirm", #flags;
    #n = dllfunc("EnvChanged");

 としたらいいんじゃないかと思います。

[ ]
RE:23048 マクロで確認メッセージをパスしNo.23050
アルビレオ さん 05/06/02 10:57
 
鶴亀ユーザーのアルビレオです。

>スパム対策で、メールヘッダーで判別の付くものはフリーソフトのSpam Mail Killer
>でサーバーから削除し、こぼれたものは鶴亀メールの迷惑メールフィルターでゴミ箱
>へ直行ということにして、すごく気分よく使えるようになりました。
>ですが、メールアカウントを7つ登録しているので、受信時にどのゴミ箱に落ちたの
>か判断がつきません。「終了時にゴミ箱を空にする」も外したくないので落とす前に
>ゴミ箱を見てまわるのですがこれが毎回だとちょっと面倒。ということで、すべてゴ
>ミ箱の中身を一つのゴミ箱に集めるという初鶴亀マクロに挑戦してみました。

考え方を変えて、実行するたびに各アカウントのゴミ箱へ移動する巡回用マクロ
を作ってみました。
「終了時にゴミ箱を空にする」にしているなら、すぐに見つけられると思います。
振り分け設定でスパム判定したメールには色をつけるようにすると、よりわかり
やすいでしょう。
適当に空いているキーに割り当てるか、ツールバーに登録しておくとサクサク探
せます。

loaddll "TKInfo.dll";
$Folder = dllfuncstr("CurrentFolder");
if($Folder != "ゴミ箱"){
 //現在のフォルダがゴミ箱でなければゴミ箱に移動
 #n = dllfunc("SelectFolder", "", "ゴミ箱");
 endmacro;
}
$CurAcc = dllfuncstr("CurrentAccount");
$Acc = "";
#ac = -1;
//現在のアカウント番号を取得
while($Acc != $CurAcc){
 #ac = #ac + 1;
 $Acc = dllfuncstr("Account", #ac);
}
//次のアカウント名を取得
$Acc = dllfuncstr("Account", #ac+1);
if($Acc==""){
 //最後だったら先頭のアカウント名を取得
 $Acc = dllfuncstr("Account", 0);
}
//次のアカウントのゴミ箱に移動
#n = dllfunc("SelectFolder", $Acc, "ゴミ箱");

[ ]
RE:23049 マクロで確認メッセージをパスしNo.23055
りーや さん 05/06/02 12:24
 
> 他に、設定を一時的に変更しつつ、EnvChanged関数を使うという手もあります。

おぉっ!ありがとうございます。
やっぱり insaide 鶴亀マスターならではの技があったのですね。
質問して良かったです。早速試してみます。

でっ、この間にひとつバグっぽいのを見つけてしまいました。
えっと、ふだんから受信ログフォルダーも表示してるのですが、「キー割り当て」で
「受信ログファイルを選択」にALT+Lをアサインしたのですが、受信ログファイルが
選択されません。受信フォルダーとかゴミ箱フォルダーは動くんですが、割り当ての
トグルでポンというエラー音がしたりしなかったりするのでたぶん・・・
えっと、なんでこんな使わなそうなのを見つけたかというと、、(^^;;
Ver4.17bata1です

[ ]
RE:23050 マクロで確認メッセージをパスしNo.23056
りーや さん 05/06/02 12:28
 
>考え方を変えて、実行するたびに各アカウントのゴミ箱へ移動する巡回用マクロ
>を作ってみました。

アルビオレさんもありがとうございます。_o_

上で教わった方法で、受信が落ち着いたら自動実行にしようと思うのですが、これも
最終確認の安心感に便利そうで、ありがたく使わせていただきます。

[ ]
RE:23055 マクロで確認メッセージをパスしNo.23058
秀まるお2 さん 05/06/02 13:15
 
 その「受信ログフォルダを選択」をAlt+Lに割り当てて押してみた所、こちら
では普通に動作します。「ポン」って音もしないし、フォルダが選択されると同
時にそのフォルダ中の適当なメールが1つ選択された状態になります。

 もしかして「全般的な設定・未読メールの閲覧・詳細」の「フォルダ切り替え
時に選択するメールの指定」のオプションとか、またはその他のオプションが関
係してるのかもしれませんけど。

 もしよろしければ、「設定内容の保存/復元...」で設定内容をファイルに保存
して、それをmaruo@mitene.or.jp宛に送って欲しいです。

[ ]
RE:23058 マクロで確認メッセージをパスしNo.23059
秀まるお2 さん 05/06/02 14:39
 
 設定ファイルありがとうございます。おかげさまでバグが再現できました。

 というか、単純に僕が再現テストの方法を間違えていただけでした。

 とにかく修正させていただきます。

[ ]