dllfunc("SelectedMailCount")について?No.25045
龍朋 さん 05/11/12 09:45
 

[ X-Mailer:HidemaruMail 4.58 (WinNT,500) ]

お世話になっております。
龍朋 です。

#実は「公開マクロサポート会議室」でお尋ねしている件に関連し
#ているのですが・・・

capa様の「アカウント越しのメール振り分け補助マクロ」を使用さ
せていただいております。
が、dllfunc("SelectedMailCount")でエラーが発生し、振り分けで
きない時があります。

メルマガを含めて、spam word にひっかかったメール、ウィルスバ
スター2006の迷惑メール機能にひっかかったメールなど、返信不要、
数日で削除しても構わないものを別アカウントに振り分けておりま
すので、振り分けできないメールを特定することができておりませ
ん。

ちなみに、アカウントグループ4、アカウント13で運用しており
ます。

「アンチウィルスソフトのリアルタイム検索を高速動作させる」の
チェックを外しましたが、発生しております。


dllfunc("SelectedMailCount")
この関数に原因のお心当たりはありませんでしょうか?


また、振り分け時に
    パス=TML\******\index.htmlが不正
と出ることがありますが、その時の振り分けはできております。


環境
秀丸:4.58
OS:W2K SP4 及び XP Pro
ホームディレクトリ:USB接続のHDD
常駐:ウィルスバスター2006


--
龍朋(Ryuhou)  

[ ]
RE:25045 dllfunc("SelectedMailCount")にNo.25046
capa さん 05/11/12 11:18
 
capa%秀丸メールユーザです。

もっと条件を絞り込んでから問い合わせようと思っていたのですが、龍
朋さんに先を越されてしまいました(^^;

補足しますと、問題が発生するのは末尾のようなマクロなんですが、龍
朋さんの環境では「数が合わない!」と表示されるケースがあるそうな
んです。つまり GetFolderMailCount の数と、「すべて選択」実行後の
SelectedMailCount の数が合わない場合がある、と。

>環境
>秀丸:4.58
>OS:W2K SP4 及び XP Pro
>ホームディレクトリ:USB接続のHDD
>常駐:ウィルスバスター2006

現在まで分かっていることをまとめると
・受信が一段落した時に自動起動すると発生しやすい
・ただし受信から間を置いて手動実行しても発生することがある
・フォルダにHTMLメールがある場合に発生しているのかもしれない
・異常発生後に該当フォルダを覗こうとするとHTMLメールの数だけ
>    パス=TML\******\index.htmlが不正
  が表示される(「受信H」が抜けている?)
・ver4.50付近から発生するようになった(VB2006にしてから?)
・「アンチウィルスソフトのリアルタイム検索を高速動作させる」の設
  定をはずしても発生した(頻度は低下したかもしれない)
ということです。

手元では全く再現できないのでちょっとお手上げ状態です。
よろしくお願いします。


-- マクロここから
// メールがあれば処理開始
#mcnt = dllfunc("GetFolderMailCount",$A_ac,$A_fl);
if(#mcnt>0){
  // フォルダの選択
  if(!dllfunc("SelectFolder",$A_ac,$A_fl)) goto FERR;
  // 表示範囲を全体に変更
  #va = dllfunc("ViewArea");
  #n = dllfunc("SetViewArea",0);
  // すべてのメール選択
  #n = sendmessage( hidemaruhandle(0), 0x0111, 40008, 0);
  // メールの移動
  if(#mcnt==dllfunc("SelectedMailCount")){
    if(!dllfunc("Move",$B_ac,$B_fl)) goto TERR;
  }else{
    message "数が合わない!";
  }
  // 表示範囲を元に戻す
  #n = dllfunc("SetViewArea",#va);
}

[ ]
RE:25046 dllfunc("SelectedMailCount")にNo.25047
龍朋 さん 05/11/12 17:25
 
[ X-Mailer:HidemaruMail 4.58 (WinNT,500) ]

お世話になっております。
龍朋 です。

******** capa <54480xxxxxxxxxxxxxx@maruo.co.jp> さん wrote
******** [ hidesoft.8:25046| RE 25045 dllfunc("SelectedMailCount")について? ]
******** [ Sat, 12 Nov 2005 11:18:26 +0900 ]

>もっと条件を絞り込んでから問い合わせようと思っていたのですが、龍
>朋さんに先を越されてしまいました(^^;

すみませんm(_ _;)m
先走ってしまいました。


私も補足させていただきます。

>・異常発生後に該当フォルダを覗こうとするとHTMLメールの数だけ
>>    パス=TML\******\index.htmlが不正
>  が表示される(「受信H」が抜けている?)

表示される時がある↑、ということです。すんなりと成功する場合
もあります。

また、振り分けに失敗すると、未読件数が減っているようです。

--
龍朋(Ryuhou)  

[ ]
RE:25047 dllfunc("SelectedMailCount")にNo.25056
秀まるお2 さん 05/11/14 09:51
 
 とりあえず、「パス=TML\******\index.htmlが不正」みたいな
エラーメッセージが出た時にdump.txtに適当な記録が出てると思うんですが、そ
れを送っていただければ、少なくともそのエラーが出てる直接の原因は分かると
思います。

 もしdump.txtが出てないようでしたら、すみませんがもうちょっと1文字単位
での正確なエラーメッセージ内容を教えて欲しいです。例えば「パス=」と書い
てありますが、「=」のような全角のイコールを表示するような処理は秀丸
メールの中には無くて、果たしてどこでエラーメッセージを出してるのかよく分
かりませんでした。

 っと言いつつも、とりあえず、SelectedMailCountの値とGetFolderMailCount
の値が食い違う可能性について調べてみようと思います。

[ ]
RE:25056 dllfunc("SelectedMailCount")にNo.25059
秀まるお2 さん 05/11/14 11:01
 
 ソースコードを見直して思ったのは、たぶん返り値のおかしいのは
GetFolderMailCount関数の方だということでして…。

 とりあえず、「アンチウィルスソフトのリアルタイム検索を高速動作させる」
に関係して怪しくなってる部分の排除だけしてみます。V4.59β6でそうします。
一応、それでも遅くはならない程度に排除します。

 それでしばらく様子見して欲しいです。

 それでもダメだとしたら、マクロでのGetFolderMailCount関数の時に限って動
作を少々遅くして、絶対正確な値を返すようにするってことは可能です。次の
V4.59β6でもダメそうでしたら、そういう風に直してみたいと思います。

 あと、その「パス=TML\.....」のエラーが出るのはまったく別の問題のよう
な気がしつつ、発生場所が僕にはちょっと分からないです。ということで、すみ
ませんがdump.txtの内容など教えて欲しいです。

 メールで送って頂くとしたら、 maruo@mitene.or.jp 宛にお願いします。

[ ]
RE:25059 dllfunc("SelectedMailCount")にNo.25070
capa さん 05/11/14 18:07
 
capa%鶴亀ユーザです。

ちなみにですが…

GetFolderMailCount と SelectedMailCount の値が違ったケースで、実
際にフォルダにあるメールの数は GetFolderMailCount の値なのだそう
です。

数が合わなかった場合の処理にMailCountやMailCountAllも仕込んだマク
ロを試してもらいましたが、GetFolderMailCountと同じ値を返していま
した。違うのは「すべて選択」後のSelectedMailCountの値だけなんで
す。

フォルダにあるメールの数=6
GetFolderMailCount=6
SelectedMailCount=1
MailCount=6
MailCountAll=6

このような結果でした。

可能ならVB2006のリアルタイム検索機能を解除した状態でもテストして
もらうようお願いしたのですが、こちらは結果報告はまだ受けていませ
ん。

[ ]
RE:25070 dllfunc("SelectedMailCount")にNo.25073
龍朋 さん 05/11/14 23:02
 

[ X-Mailer:HidemaruMail 4.58 (WinNT,501) ]

お世話になっております。
龍朋 です。

******** capa <54480xxxxxxxxxxxxxx@maruo.co.jp> さん wrote
******** [ hidesoft.8:25070| RE 25059 dllfunc("SelectedMailCount")について? ]
******** [ Mon, 14 Nov 2005 18:07:50 +0900 ]

>可能ならVB2006のリアルタイム検索機能を解除した状態でもテストして
>もらうようお願いしたのですが、こちらは結果報告はまだ受けていませ
>ん。

こちらのテストは・・・まだ(^_^;)です。
#リアルタイム検索を外すとスパイウェアも外れてしまうので・・
#もう、少し待ってください。

とりあえず、
「アンチウィルスソフトのリアルタイム検索を高速動作させる」
のチェックだけは外してあります。


--
龍朋(Ryuhou)  

[ ]
RE:25056 dllfunc("SelectedMailCount")にNo.25074
龍朋 さん 05/11/14 23:02
 

[ X-Mailer:HidemaruMail 4.58 (WinNT,501) ]

お世話になっております。
龍朋 です。

******** 秀まるお2 <2xxxxxxxxxxxxxx@maruo.co.jp> さん wrote
******** [ hidesoft.8:25056| RE 25047 dllfunc("SelectedMailCount")について? ]
******** [ Mon, 14 Nov 2005 09:51:36 +0900 ]

> とりあえず、「パス=TML\******\index.htmlが不正」みたいな
>エラーメッセージが出た時にdump.txtに適当な記録が出てると思うんですが、そ
>れを送っていただければ、少なくともそのエラーが出てる直接の原因は分かると
>思います。

本日、このエラーが表示されましたが、この元メールを見る前だっ
たので、見過ごしてしまいました。
また、dump.txtのチェックが外れておりましたし・・・
発生しましたら、報告させていただきます。


> っと言いつつも、とりあえず、SelectedMailCountの値とGetFolderMailCount
>の値が食い違う可能性について調べてみようと思います。

これの解明に役立つかどうかわかりませんが、maruo@mitene.or.jp
宛てに添付して(そのときの画面も)送ります。

--
龍朋(Ryuhou)  

[ ]
RE:25073 dllfunc("SelectedMailCount")にNo.25075
秀まるお2 さん 05/11/15 08:47
 
 SelectedMailCountの返す値がおかしいとしたら、原因としては、本当にその
SelectedMailCountの処理が間違っているか、または「すべて選択」が失敗して
るかだと思います。

 とりあえずマクロの

  // メールの移動
  if(#mcnt==dllfunc("SelectedMailCount")){
    if(!dllfunc("Move",$B_ac,$B_fl)) goto TERR;
  }else{
    message "数が合わない!";
  }

 の所を、


  if(#mcnt!=dllfunc("SelectedMailCount")){
    //すべて選択のやり直し
    #n = sendmessage( hidemaruhandle(0), 0x0111, 40008, 0);
    if( #mcnt!=dllfunc("SelectedMailCount")){
      message "数が合わない!";
      endmacro;
    }
  }
  if(!dllfunc("Move",$B_ac,$B_fl)) goto TERR;

 みたいに、「すべて選択」をやり直してからもう一度SelectedMailCountを見
るように直せば、エラーが回避できるかもしれないです。

 といいつつ、そもそもは秀丸メール側のバグに違いないと思うので、その辺い
ろいろ調べてみます。

> とりあえず、
> 「アンチウィルスソフトのリアルタイム検索を高速動作させる」
> のチェックだけは外してあります。

 GetFolderMailCountの返す値についてのバグじゃないとしたら、こっちのオプ
ションは関係ないと思います。

[ ]
RE:25075 dllfunc("SelectedMailCount")にNo.25076
秀まるお2 さん 05/11/15 09:00
 
 決定的な原因を見つけてしまいました。

 実は、「すべて選択」のコマンドは、メール内容枠をアクティブにした状態で
実行すると、メール内容の中のテキストを「すべて選択」という動作になってし
まいます。

 なので、

    #n = sendmessage( hidemaruhandle(0), 0x0111, 40008, 0);

 の所を、

    if( dllfunc("CurrentPane") >= 2 ) {
      #tmp = dllfunc("SelectPane", 1);
    }
    #n = sendmessage( hidemaruhandle(0), 0x0111, 40008, 0);

 としないとダメなようです。

 それで直ると思います。

 というか、これはこれで僕の配慮が足りなかったということで、「すべての
メールを選択」ってするためのコマンドをちゃんと用意します。

[ ]
RE:25076 dllfunc("SelectedMailCount")にNo.25077
龍朋 さん 05/11/15 09:16
 
[ X-Mailer:HidemaruMail 4.58 (WinNT,500) ]

お世話になっております。
龍朋 です。

>    if( dllfunc("CurrentPane") >= 2 ) {
>      #tmp = dllfunc("SelectPane", 1);
>    }
>    #n = sendmessage( hidemaruhandle(0), 0x0111, 40008, 0);

では、これで様子をみてみます。
#本日だけで、振り分け対象となったメールは30件ありますが、ど
#ちらの現象も発生しておりません。
#いつ発生するのかわからないので、時間がかかって申し訳有りま
#せん。

あとは「不正パス」ですね。
発生するまでお待ち下さい。

--
龍朋(Ryuhou)  

[ ]
RE:25077 dllfunc("SelectedMailCount")にNo.25085
龍朋 さん 05/11/15 21:20
 
[ X-Mailer:HidemaruMail 4.58 (WinNT,500) ]

お世話になっております。
龍朋 です。

>>    if( dllfunc("CurrentPane") >= 2 ) {
>>      #tmp = dllfunc("SelectPane", 1);
>>    }
>>    #n = sendmessage( hidemaruhandle(0), 0x0111, 40008, 0);
>
>では、これで様子をみてみます。

「アンチウィルスソフトのリアルタイム検索を高速動作させる」を
チェックした状態で、上記のように修正しました。
その後、現在まで発生しておりませんが、やっと

>あとは「不正パス」ですね。

が、発生しましたので、お送りしました。

ちなみに、4.58のままでテストしております。
V4.59β7以降になっても上記マクロのままでよろしいのでしょうか?


--
龍朋(Ryuhou)  

[ ]
RE:25085 dllfunc("SelectedMailCount")にNo.25090
秀まるお2 さん 05/11/16 08:51
 
 不正パスの情報ありがとうございます。なんとか原因究明します。

> ちなみに、4.58のままでテストしております。
> V4.59β7以降になっても上記マクロのままでよろしいのでしょうか?

 上記マクロのままでいいです。

[ ]
RE:25090 dllfunc("SelectedMailCount")にNo.25091
秀まるお2 さん 05/11/16 09:48
 
 「不正パス」が発生する件ですが、おかげさまで原因究明できました。

 utf-8文字コードで、しかも添付ファイル(またはHTMLメール)付きのメール
をアカウントをまたがって移動/コピーすると、その段階で既に、移動/コピーさ
れた先のX-Attach:(またはX-Html:)ヘッダが壊れてしまってました。

 添付ファイルのコピー自体もうまく動作してませんでした。

 ということでそこから修正させていただきます。

 既にX-Attach:ヘッダが壊れてしまったメールについては修復できないです。
なので、バグ修正された物を入れたとしても、既に壊れてしまったメールを移動
/コピ/ー削除などすると、相変わらずエラーが出続けてしまいます。それはそれ
で、エラーを気にしないでしばらく使っていただくしかなさそうです。

 ということでお願いします。

[ ]
RE:25091 dllfunc("SelectedMailCount")にNo.25096
龍朋 さん 05/11/16 13:20
 
[ X-Mailer:HidemaruMail 4.58 (WinNT,500) ]

お世話になっております。
龍朋 です。

解明できてよかったです。

--
龍朋(Ryuhou)  

[ ]
RE:25096 dllfunc("SelectedMailCount")にNo.25124
capa さん 05/11/17 11:10
 
capa%秀丸メールユーザです。

秀丸メールver.4.59正式版が公開されましたので、バグ発覚の元となっ
た「アカウント越しのメール振り分け補助マクロ」も ver.1.02 に更新
してライブラリに登録しました。近日中にダウンロード可能になると思
います。

龍朋さんのおかげで、マクロ、秀丸メール本体とも関連するいくつかの
まずいバグが修正されていますので、現在当マクロご利用の方はいずれ
も最新版に更新していただくようお願いします。

[ ]