TkInfoのGetFolderMailCountについてNo.25865
どみにか さん 06/01/11 09:38
 
お世話になっております。どみにかです。

2ヶ月ほど前から、後述のマクロの動作がおかしくなりました。
新着かつ未読のメール数をカウントするマクロなのですが、
実際の数+1を返すようになりまして、すべて既読の状態でも1を返す状態です。
未読メールがあった場合に、通知領域にオリジナルのアイコンとメッセージを出す仕
組みを作って使用してたんですが、前述の現象が発生してからはマクロを無効にして
ます。

自作DLLのテストの過程で、何度か連続して秀丸メールの強制終了に陥ったことが
ありまして、
その時に受信動作中だったりとかで、どこかのフラグがおかしな(矛盾した)状態にな
ってるんだと思うんですが、どのあたりをどのように直すといいのでしょうか?
自分で無茶やったんだから自分で直すつもりだったのですが、いろいろいじっても直
せず、怖くなってバックアップから戻しました。

大変申し訳ないのですが、
 dllfunc("GetFolderMailCount", $$ACNAME, $$NowFolder, "unread", "hot")
が、具体的にどの状態をヒットとしてカウントしているのかご教授ください。
よろしくお願いします。

WinXP Pro Sp2
秀丸メール Ver.4.58

-------------------
//////  新着かつ未読のメール数カウント  ///////
GetNewestUnreadCount:

  ##HotCnt = 0;
  ##ACCnt = 0;
  $$ACNAME = dllfuncstr("Account", ##ACCnt);
  while($$ACNAME != ""){
    $$NowFolder = "受信";
    while($$NowFolder != ""){
      ##HotCnt = ##HotCnt + dllfunc("GetFolderMailCount", $$ACNAME, $$NowFol
der, "unread", "hot");
      $$NowFolder = dllfuncstr("GetNextFolder", $$ACNAME, $$NowFolder);
      ##Work = strstr($$NowFolder, "\\");
      if(##Work < 0) break;
      $$NowFolder = midstr($$NowFolder, strlen($$ACNAME) + 1, strlen($$NowFo
lder));
    }
    ##ACCnt  = ##ACCnt + 1;
    $$ACNAME = dllfuncstr("Account", ##ACCnt);
  }
return ##HotCnt;
////////////////////////

[ ]
RE:25865 TkInfoのGetFolderMailCountにつNo.25866
秀まるお2 さん 06/01/11 09:57
 
 GetFolderMailCount関数ですが、パラメータは3つしか有効では無いです。4
つ目の"hot"は意味が無いです。

 0になるはずが1になるということは、どこかのフォルダにまだ未読メールが残
っているはずなので、そのフォルダがどこか確認したらいいんじゃないかと思い
ます。具体的には、マクロのループの中に、

    #n = dllfunc("GetFolderMailCount", $$ACNAME, $$NowFolder, "unread");
    if( #n != 0 ) {
        message "未読メールがあります。" + $$ACNAME + "/" + $$NowFolder;
    }

 みたいな文を入れて実行してみれば分かると思います。

 そのフォルダに未読メールが無いはずだとしたら、そのフォルダを選択して
「編集・フォルダ毎の処理・メール一覧の作成し直し」をすれば復旧するかもし
れません。

[ ]
RE:25866 TkInfoのGetFolderMailCountにつNo.25874
どみにか さん 06/01/12 00:18
 
どみにかです。 回答有難うございます。

>  GetFolderMailCount関数ですが、パラメータは3つしか有効では無いです。4
> つ目の"hot"は意味が無いです。

バグ摘出、感謝いたします。(^_^;
たしかに意味ないですね。。。


> ます。具体的には、マクロのループの中に、
>  (略)
>  みたいな文を入れて実行してみれば分かると思います。

ありました。使っていないアカウントのゴミ箱の中に。。。
ホント申し訳ないです。
自分の未熟さにゲンナリです。

しかしなぜそんな所に未読メールが・・・???
ま、振分け設定してない以上、自分でやっちゃったんでしょうし、とにかく解決。
バグまで見つけていただいて、本当に感謝。

有難うございました。

[ ]