秀丸メールマクロの時間差実行No.00518
togatin さん 11/05/15 23:39
 
ある2つの秀丸メール用のマクロを、受信が一段落したときに実行に実行したいと思
います。メールは24時間体制で受信します。メールは別々です。
時間帯が問題でして
1.macは、X時00分の前後5分以内
(例、9時55分から10時5分の間)
に受信してマクロを実行する。

2.macは、1.macの反対で5分から55分の間で実行する。
もし1.macの時間帯に受信したものは、2.macの時間帯に受信の一段落の実行まで待つ。

こんなのをマクロで実現できるでしょうか。

マクロライブラリにも複数のマクロを起動させるためのマクロがありますが1.mac 2.
macともメールマクロの後に秀丸エディタマクロを実行するため、ほぼ同時に受信し
てほぼ同時に秀丸エディタマクロが実行してしまいフリーズしてしまいます。


他に何か案があれば教えていただけると幸いです。

よろしくお願いいたします。

[ ]
RE:00518 秀丸メールマクロの時間差実行No.00519
秀まるお さん 11/05/16 11:12
 
 例えばマクロを「受信が一段落した時」に自動実行するようにしていたとして、
マクロが実行された時間によって動作を変えることは可能です。

 例えば、

    loaddll "TKInfo.dll";
    $time = dllfuncstr("CurrentDate", "mm");
    #time = val($time);
    if( #time < 5 || #time >= 55 ) {
        // 55分〜5分なら
        execmacro "1.mac";
    } else {
        execmacro "2.mac";
    }

 とかいうマクロでそういうことは可能だと思います。

 ただし、注意点が1つあります。秀丸メールの定期受信の間隔を例えば5分と
か指定していたとしても、正確に5分間隔で受信する訳ではないです。特に秀丸
メール上で何か作業している場合はもっと間隔が長くなることが多いです。

 例えば秀丸メール本体上で何かメールをドラッグアンドドロップしている最中
に定期受信しようとすると、定期受信が少し(20秒くらい)延期されます。延
期されてまた再開しようとした時にまた何か作業中だと、また延期されたりしま
す。

 メールの受信にものすごく時間がかかったりすると、結果的に定期受信の間隔
はその分長くなったりもします。

[ ]
RE:00519 秀丸メールマクロの時間差実行No.00520
togatin さん 11/05/17 23:14
 
> 例えばマクロを「受信が一段落した時」に自動実行するようにしていたとして、
>マクロが実行された時間によって動作を変えることは可能です。
>
> 例えば、
>
>    loaddll "TKInfo.dll";
>    $time = dllfuncstr("CurrentDate", "mm");
>    #time = val($time);
>    if( #time < 5 || #time >= 55 ) {
>        // 55分〜5分なら
>        execmacro "1.mac";
>    } else {
>        execmacro "2.mac";
>    }
>
> とかいうマクロでそういうことは可能だと思います。

無事、両方のメールの処理が出来ました。
ありがとうございます。


>
> ただし、注意点が1つあります。秀丸メールの定期受信の間隔を例えば5分と
>か指定していたとしても、正確に5分間隔で受信する訳ではないです。特に秀丸
>メール上で何か作業している場合はもっと間隔が長くなることが多いです。
>
> 例えば秀丸メール本体上で何かメールをドラッグアンドドロップしている最中
>に定期受信しようとすると、定期受信が少し(20秒くらい)延期されます。延
>期されてまた再開しようとした時にまた何か作業中だと、また延期されたりしま
>す。
>
> メールの受信にものすごく時間がかかったりすると、結果的に定期受信の間隔
>はその分長くなったりもします。

秀丸メール本体上での作業が定期受診の間隔を伸ばすことになるとのことですが、作
業が終了しても間隔が元に戻る仕組みは無いのでしょうか。その場合、秀丸メールを
再起動させなければならないのでしょうか。

[ ]
RE:00520 秀丸メールマクロの時間差実行No.00521
秀まるお さん 11/05/18 15:13
 
> 秀丸メール本体上での作業が定期受診の間隔を伸ばすことになるとのことですが、作
> 業が終了しても間隔が元に戻る仕組みは無いのでしょうか。その場合、秀丸メールを
> 再起動させなければならないのでしょうか。

 定期受信の間隔は、一時的に伸びたとしても、またすぐ元に戻ります。

 で、この「間隔」ですが、例えば間隔を1分と指定しておけば1分毎に定期受
信するという意味ではなくて、「受信が終わってから次の受信が開始するまでの
間の時間が1分」というような意味になってます。

 例えば受信の処理に毎回1分かかるとしたら、その1分かかる受信の処理が終
わってから1分後に定期受信が開始されるので、そういう意味で言うと、受信の
開始される時間間隔をずっとプロットしていくと、2分間隔で定期受信が実行さ
れてるような形になります。

 その辺ちょっとややこしいのでご理解の程お願いします。

[ ]