マクロでRecvMailCountの値がおかしいNo.01843
プックン さん 00/12/01 15:40
 

秀まるおさま

メールを受信したときに、メッセージが出るようにしているのですが
下記のマクロを"受信が一段落した時"に定義して実行すると
受信メール数(RecvMailCount)の数がおかしいです。

複数個のメールを受信しても値が"1"となってしまいます。
このわたしが使っているマクロがおかしいのでしょうか?。
それとも、dllの動作がおかしいのでしょうか?
よろしくおねがいします。

鶴亀メールVer 0.51Beta
OS        windows95

//-------------------------
    openreg "CURRENTUSER","Software\\Hidemaruo\\TuruKame\\Config";
    if( !result ) {
    message "鶴亀がインストールされてないです (^^;)\n"+$info;
    endmacro;
    }

    loaddll "tkinfo.dll";
    if( !result ) {
    message "DLLロードに失敗\n"+$info;
    endmacro;
    }

#n =dllfunc("RecvMailCount");
if (#n!=0) {
    //受信フォルダを選択
    $account =dllfuncstr("CurrentAccount");
    #n = dllfunc("SelectRecvMailInFolder") ;
    if(#n != 1){
        message "受信メールの選択に失敗しました。";
    }
    message "新着メールだよ〜ん "+ str(#n) + " 通";
}

LEND:
    endmacro:

[ ]
RE:01843 マクロでRecvMailCountの値がおNo.01845
ひろ さん 00/12/01 16:45
 
 プックンさん今日は、ひろです。
> 受信メール数(RecvMailCount)の数がおかしいです。
 私の環境では、RecvMailCount の返り値に問題はありませんでした。
 私も一度違いがあるような気がしたのですが、受信時に DM がゴミ箱に振
り分けられていました(^^;。

 あとは蛇足です。
>     //受信フォルダを選択
>     $account =dllfuncstr("CurrentAccount");
 現在の account の受信 folder を選択するなら、
##n = dllfunc("SelectFolder",dllfuncstr("CurrentAccount"),"受信");
ではないでしょうか?

> LEND:
>     endmacro:
 freedll を追加した方がよいでしょう。

[ ]
RE:01843 マクロでRecvMailCountの値がおかしいNo.01848
"M.OBARA" さん 00/12/01 17:32
 
 誰も答えていないようですので、恥ずかしながら答えさせていただきます。

 RecvMailCount の戻り値を #n へ入れていますが、その後
SelectRecvMailInFolder でも #n へ入れちゃってます。

    #RecvMailCount =dllfunc("RecvMailCount");
    if (#RecvMailCount!=0) {
        //受信フォルダを選択
        $account =dllfuncstr("CurrentAccount");
        #n = dllfunc("SelectRecvMailInFolder") ;
        if(#n != 1){
            message "受信メールの選択に失敗しました。";
        }
        message "新着メールだよ〜ん "+ str(#RecvMailCount) + " 通";
    }

てな感じでどうなるでしょう?

[ ]
RE:01848 マクロでRecvMailCountの値がおかしいNo.01851
プックン さん 00/12/01 17:58
 
ひろさん,M.OBARAさん こんにちは

> 現在の account の受信 folder を選択するなら、
使っているマクロをテストして削除していったので、フォルダを
選択するマクロを中途半端に削除してました。(^_^;)

>freedll を追加した方がよいでしょう。
DLLを開放するコマンドがあったんですね。しりませんでした。
参考になりましたありがとうございます。

> RecvMailCount の戻り値を #n へ入れていますが、その後
>SelectRecvMailInFolder でも #n へ入れちゃってます。
げげー、あまりにも初歩的なミスをしてました。(;_;)
ご指摘ありがとうございました。

修正したところ正常に動作しました。
おさわがせしました。m(__)mペコ


[ ]
RE:01843 マクロでRecvMailCountの値がおかしいNo.01854
秀まるお さん 00/12/02 16:39
 
>     #n = dllfunc("SelectRecvMailInFolder") ;
>     if(#n != 1){
>         message "受信メールの選択に失敗しました。";
>     }

 1かどうか判定しているのは"SelectRecvMailInFolder"関数の返り値であって、
RecvMailCountの値は

> #n =dllfunc("RecvMailCount");
> if (#n!=0) {

 で0以外かどうか判定しているだけですよね。ということはこのマクロに限っては
「複数個のメールを受信しても"1"となる」が仮にそうだとしても、正しく動作する
と思います。

[ ]