数秒待って送受信するマクロは?No.05874
tsuki さん 19/11/23 10:38
 
tuki です。

秀丸メールにて、秀丸メール起動時にすべての送受信を実行するにして使っています。
最近 win10 をスリープにして使う事がおおくなりました。
自分のパソコンはスリープからの無線LAN の復帰が少し(2−3秒か)遅いようなの
で、うまくメールの取り込みが出来ない時があります。

秀丸メール起動時に2−3秒待ってから送受信を開始できるようにならないかと思っ
たりします。秀丸メール起動時にだけマクロで対応出来たらと
思うのですが、出来ないでしょうか。

宜しくお願いいたします。


[ ]
RE:05874 数秒待って送受信するマクロは?No.05875
tsuki さん 19/11/23 15:17
 
tuki です。

自己レスです。

>秀丸メール起動時に2−3秒待ってから送受信を開始できるようにならな>いかと思
>ったりします。秀丸メール起動時にだけマクロで対応出来たらと
>思うのですが、出来ないでしょうか。

過去ログを見ていたら簡単でした。たった一行のマクロで良いようで

ddewaitadvice "", 2000;  // 2秒待つ

これを wait.mac として秀丸メール起動時に入れればうまく動作します。

でもこれでは無線LAN に繋がっている時にでも2秒待つようになります。
無線LAN に繋がっているかどうかを判定はできるのでしょうか?

[ ]
RE:05875 数秒待って送受信するマクロは?No.05879
秀まるお2 さん 19/11/24 22:36
 
 無線LANにつながってるかどうかをマクロで調べる手段は、ちょっと分からないです。

 定期受信の詳細設定(全般的な設定・定期受信・詳細)に、

 □ ネットワークが有効な時のみ
 □ DNSサーバーの有無をチェック

 といったオプションがあるんですが、これに相当することをマクロから参照できる
ように、tkinfo.dllの関数を追加するってことでしたら対応できると思います。必要
なら追加してもいいです。

 それと、秀丸メール起動時にウェイトさせるのは、例えば

    loaddll "tkinfo.dll";
    #n = dllfunc("SetAutoPushTimer", 5, "yes");
    question "5秒待機中。「はい」を押すとスキップします。";

 このようなマクロにするといいかもしれません。上記マクロを実行すると、普通は
5秒のウェイトになりますが、メッセージ中のボタンを押せば5秒待たずにマクロが続
行されます。

 他に、「全般的な設定・送受信・詳細」に、

 □ 最初に限り、CPU負荷が下がるまで送受信を待機させる

 のオプションがあるのでそれをONにするとうまく回避できるかもしれません。

[ ]
RE:05879 数秒待って送受信するマクロは?No.05881
tsuki さん 19/11/25 09:12
 
 tsuki です。

定期受信の詳細設定(全般的な設定・定期受信・詳細)に、

 □ ネットワークが有効な時のみ
 □ DNSサーバーの有無をチェック

>  といったオプションがあるんですが、これに相当することをマクロから参照できる
> ように、tkinfo.dllの関数を追加するってことでしたら対応できると思います。必要
> なら追加してもいいです。

そうすると □ ネットワークが有効でない時にだけ動くような感じですかね、とにか
く追加できる
ようならばお願いしたいです。宜しくお願いします。

>  それと、秀丸メール起動時にウェイトさせるのは、例えば
>
>     loaddll "tkinfo.dll";
>     #n = dllfunc("SetAutoPushTimer", 5, "yes");
>     question "5秒待機中。「はい」を押すとスキップします。";
>
>  このようなマクロにするといいかもしれません。上記マクロを実行すると、普通は
> 5秒のウェイトになりますが、メッセージ中のボタンを押せば5秒待たずにマクロが続
> 行されます。

なるほど、動かしてみましたがこれでも十分な印象がします。今のところ2秒にして
みましたが
問題は無さそうです。

USB 端子にはパソコンの電源断で電源が切れるのと切れないのが有るようで(長いこ
と知らなかったですが)、
今のところ電源が切れる端子に USB 無線LAN を繋いでいるから無線LAN 復活に1秒
−2秒ほど掛かるみたいです。

>  他に、「全般的な設定・送受信・詳細」に、
>
>  □ 最初に限り、CPU負荷が下がるまで送受信を待機させる
>
>  のオプションがあるのでそれをONにするとうまく回避できるかもしれません。

これはあまり効果が無いように思いました。

[ ]
RE:05881 数秒待って送受信するマクロは?No.05888
秀まるお2 さん 19/11/25 11:26
 
>  □ ネットワークが有効な時のみ
>  □ DNSサーバーの有無をチェック

 これを調べる関数が既にありました。自分で作っておいて自分で忘れてました。

 ネットワークおよびDNSサーバーが有効になるまで待機するマクロの例を作ってみ
ました。

    loaddll "tkinfo.dll";
    while(1) {
        #n = dllfunc("IsNetworkOnline", 1, 1 );
        if( #n != 0 ) {
            //オンラインなので終了
            endmacro;
        }
        title "オフラインなので待機しています。何かキーを押すとキャンセルし
ます。";
        sleep 300;
        if( keypressed ) {
            endmacro;
        }
    }

 こんな感じでどうでしょうか。

[ ]
RE:05888 数秒待って送受信するマクロは?No.05889
秀まるお2 さん 19/11/25 11:43
 
 受信だけじゃなくて、エディタ・ウィンドウ上の「今すぐ送信」の時にも使えるよ
うに直してみました。


    loaddll "tkinfo.dll";
    while(1) {
        #n = dllfunc("ExecAtMain","IsNetworkOnline", 1, 1 );
        if( #n != 0 ) {
            //オンラインなので終了
            endmacro;
        }
        title "オフラインなので待機しています。何かキーを押すとキャンセルし
ます。";
        sleep 300;
        if( keypressed ) {
            endmacro;
        }
    }

 これを、「マクロ・マクロ登録...」の「自動起動」ページの「送受信の開始直
前」に登録しておけば大丈夫じゃないかと思います。

[ ]
RE:05889 数秒待って送受信するマクロは?No.05890
tsuki さん 19/11/25 13:18
 

Tsuki です。

On 2019年11月25日(月) 11:43:09に秀まるお2 wrote:
> 受信だけじゃなくて、エディタ・ウィンドウ上の「今すぐ送信」の時にも使えるよう
> に直してみました。

早速使ってみましたが、今までのストレスが解消され便利になりました。
ありがとうございました。
 

[ ]
RE:05889 数秒待って送受信するマクロは?No.05894
tsuki さん 19/11/26 07:15
 
 tsuki です。

このマクロでかなり快適になりました。無線LAN が復活すれば自動的にメール受信が
できるようでなかなか
優れものです。

>  title "オフラインなので待機しています。何かキーを押すとキャンセルし ます。";

ところでマクロの中に何かキーを押すととありますが、ESCキー またはマウスの左ク
リックでうまく動作するようです
が、ESCキーにでもした方が良いのではないでしょうか。

[ ]
RE:05894 数秒待って送受信するマクロは?No.05895
秀まるお2 さん 19/11/26 09:31
 
 Escキーにするマクロの例を作ってみました。&、1つバグ修正しています。

    loaddll "tkinfo.dll";
    disablebreak;
    while(1) {
        #n = dllfunc("ExecAtMain","IsNetworkOnline", 1, 1 );
        if( #n != 0 ) {
            //オンラインなので終了
            endmacro;
        }
        title "オフラインなので待機しています。Escキーを押すとキャンセルしま
す。";
        sleep 300;
        if( keypressed == 27 ) {
            endmacro;
        }
    }

 こんな感じになります。disablebreakも必要でした。
 sleepの所の時間(ミリ秒単位の時間)はもっと短くしてもいいです。

[ ]