ロックされているタブの中に草稿フォルダNo.01565
haru2 さん 08/12/10 14:39
 
 ロックされているタブの中に、草稿フォルダーのメールが含まれ
るかチェックしたいのですが、マクロが見当つきません。
 どなたか、御指南下さい。
 よろしくお願いします。

[ ]
RE:01565 ロックされているタブの中に草稿No.01566
秀まるお さん 08/12/10 15:10
 
 現状で用意されてる関数で期待した動作をするようなマクロを作ることは可能
ですけど、そのためには、「次のタブ」を使ってタブを全部一巡させるような形
にするしか無いです。

 マクロとしては、

    loaddll "tkinfo.dll";
    #c = dllfunc("GetTabCount");
    #current = dllfunc("GetCurrentTab");
    #found = 0;
    while(1) {
        if( leftstr(dllfuncstr("CurrentFolder"), 4) == "草稿" ) {
            #found = 1;
        }
        if( #c <= 1 ) {
            break;
        }
        #n = sendmessage( hidemaruhandle(0), 0x111, 40317, 0);
        if( dllfunc("GetCurrentTab") == #current ) {
            break;
        }
    }
    if( #found ) {
        message "草稿フォルダのメールがあります。";
    }

 となりますけど…。

 ってことでどうでしょ?

 上記マクロは最新β版(V5.13β13以降)でないと使えません。

[ ]
RE:01566 ロックされているタブの中に草稿No.01567
haru2 さん 08/12/10 15:35
 
 上記マクロ、うまくいきました。

 ところで、上記マクロを、「自動起動・秀丸メール終了時」に、
設定しておいて、秀丸メールを終了させようとしたときに、草稿フ
ォルダのメールがあれば、終了をキャンセルする(終了させない)
というマクロはできるのでしょうか?
 よろしくお願いします。

[ ]
RE:01567 ロックされているタブの中に草稿No.01568
秀まるお さん 08/12/10 15:43
 
    if( #found ) {
        message "草稿フォルダのメールがあります。";
    }

 の所を、

    if( #found ) {
        message "草稿フォルダのメールがあります。";
        #n = dllfunc("SetCancel", 1);
    }

 にしたらいいかと思います。または、

    if( #found ) {
        question "草稿フォルダのメールがあります。かまわずに終了しますか?";
        if( result != yes ) {
            #n = dllfunc("SetCancel", 1);
        }
    }

 にするとか。

[ ]
RE:01568 ロックされているタブの中に草稿No.01569
haru2 さん 08/12/10 16:57
 
 上記、方法でできました。
 ありがとうございます。

 #n = sendmessage( hidemaruhandle(0), 0x111, 40317, 0); //#define IDM_NEXTT
AB 40317

 の使い方が一部わかりませんが、ヘルプで調べたりしてみて、わ
からなかったら再度、お聞きします。


[ ]
RE:01568 ロックされているタブの中に草稿No.01967
haru2 さん 09/06/08 16:30
 
 以前に教えて頂いた上記マクロで、草稿フォルダーにタブロック
のメールがあれば、そのメールをアクティブにしたいのですが、ど
う直せば良いんでしょうか?
 よろしくお願いします。

[ ]
RE:01967 ロックされているタブの中に草稿No.01969
秀まるお さん 09/06/08 18:01
 
 以下のようなマクロでいいんじゃないかと思います。

    loaddll "tkinfo.dll";
    #c = dllfunc("GetTabCount");
    #current = dllfunc("GetCurrentTab");
    while(1) {
        if( leftstr(dllfuncstr("CurrentFolder"), 4) == "草稿" ) {
            if( (dllfunc("GetTabFlag") & 1) != 0 ) {
                #found = 1;
                break;
            }
        }
        if( #c <= 1 ) {
            break;
        }
        #n = sendmessage( hidemaruhandle(0), 0x111, 40317, 0);
        if( dllfunc("GetCurrentTab") == #current ) {
            break;
        }
    }
    if( #found ) {
        message "草稿フォルダのロックされたメールがあります。";
    }


 ロックされてるかどうかは、GetTabFlag関数の返り値のビットを見る形になり
ます。詳しくはヘルプの方を参照お願いします。

[ ]