メール保存時に終了できないNo.10301
styth さん 22/09/21 08:58
 
マクロを作っている時に、次の現象が発生しました。ご確認お願い致します。
本体と未保存のメール1個(Aとします)が開いています。
マクロを、Aから実行します。
「Aを保存しますか?」と訊いてくるので、「はい」と答えますが、カーソルが円の
形になり、ぐるぐる回っていて終了しません。

マクロは、以下の通りです。

loaddll "tkinfo.dll";
#n = dllfunc( "SetMainWndTop" );
closehidemaru hidemaruhandle(1);
endmacro;

[ ]
RE:10301 メール保存時に終了できないNo.10304
秀まるお2 さん 22/09/21 10:31
 
 毎度お手数かけてすみません。固まる原因は、マクロ実行中の秀丸メール本体側に、
エディタ側からメールの保存関係の処理を指示して応答が無くて、さらにはその応答
無しの後の処理もいまいち良くなくて、そのままずっと待ち続けてしまうようでした。

 closehidemaruがちゃん動くように、なんとか修正してみます。

 とりあえずマクロを直して解決するとしたら、以下のいくつかの作戦があります。


 草稿フォルダに保存するなら

    loaddll "tkinfo.dll";
    #handle = hidemaruhandle(0);
    #n = dllfunc("SaveDraft");
    if( #n == 0 ) {
        endmacro;
    }
    #n = dllfunc( "SetMainWndTop" );
    closehidemaruforced #handle;
    endmacro;

 で、未送信フォルダに保存するなら

    loaddll "tkinfo.dll";
    #handle = hidemaruhandle(0);
    #n = dllfunc("SendLater");
    if( #n == 0 ) {
        endmacro;
    }
    #n = dllfunc( "SetMainWndTop" );
    closehidemaruforced #handle;
    endmacro;

 みたいになります。閉じる時の問い合わせをどうしても出したいなら、単純に「ex
it;」だけにするか、または

    loaddll "tkinfo.dll";
    #editor = hidemaruhandle(0);
    #n = dllfunc( "SetMainWndTop" );
    setactivehidemaru #editor;
    exit;

 みたいにして閉じた後に秀丸メール本体ウィンドウがアクティブになるようにウィ
ンドウの順次(Z-order)を変更するか、になります。

[ ]