Fw: hidesoft.8:25479| RE 25475 タスクかNo.25504
ダヴィンチ1958 さん 05/12/13 22:05
 

2005/12/13(火) 21:50:40

こんにちは、ダヴィンチ@ユーザーです。

「タスクから起動時のマクロ」は確かに起動されておりました。

dllfunc( "SelectRecvMail" );が実行しても「新着メール」に移動しない場合の
条件が特定出来ましたのでご連絡させて頂きます。
再現性100%です。

<新着メールに移動しない場合>
1.自分宛てにメールを送信します。
2.手動受信にて、受信します。この時タスクトレイ上のアイコンは赤くなりま
す。
3.直後に再度手動で受信を行います。この時は受信メールがないので何も
  受信しません。
4.タスクトレイから秀丸メール本体を表示しますが、新着メールに移動しませ
ん。

<新着メールに移動する場合>
1.自分宛てにメールを送信します。
2.手動受信にて、受信します。この時タスクトレイ上のアイコンは赤くなりま
す。
3.タスクトレイから秀丸メール本体を表示します。新着メールに移動します。

新着メールを受信後、手動または定期受信により、何も受信しない場合には
内部的な新着メールのフラグがOFFになるようです。^^
そのため新着メールにジャンプしなくなるのではないでしょうか?

直前にメールを受信していた場合は、ジャンプしますがメールを受信しなかった
場合は、ジャンプしません。
このケースにより、新着メールに正しくジャンプする場合とジャンプしない場合

あるのだと推測致します。

他の自動起動マクロが起動設定されている場合でも正しく新着メールに
ジャンプする場合があります。

ご確認下さい。

/*
** タイトル:『hidesoft.8:25479| RE 25475 タスクから起動時のマクロ』
** 発信日:2005年12月12日(月)
** 発信者:ダヴィンチ1958さん
*/
>
>2005/12/12(月) 17:43:09
>
>こんにちは、秀まるお2さん
>
>ダヴィンチ@ユーザーです。
>
>以下の件、確認させていただきます。
>
>/*
>** タイトル:『hidesoft.8:25475| RE 25469 タスクから起動時のマクロ』
>** 発信日:2005年12月12日(月) 14:23:35
>** 発信者:秀まるお2さん
>*/
>> とりあえず、マクロの内容を、
>>
>>loaddll "TKInfo.dll";
>>#n = dllfunc("SelectFolder", "", "");
>>#n = dllfunc( "SelectRecvMail" );
>>endmacro;
>>freedll;
>>
>> のようにしてみていただきまして、たしかにSelectRecvMailが動作してないの
>>か、それともマクロ自体が起動されてないのかだけ確認してみて欲しいです。
>>
>> つまり、アカウント自体が選択されてればSelctRecvMailが動いてないってこ
>>とになって、アカウントじゃない所が選択されてれば、マクロ自体が起動してな
>>いってことが分かります。
>>
>> なんとなく、マクロ自体が動作してないような気がしますけど。他の自動起動
>>マクロの実行要求と重なるとダメな気がします。
>
>--
>メーラー: HidemaruMail 4.60beta6 (WinNT,500)
>OS: Windows2000 SP4

--
メーラー: HidemaruMail 4.60beta6 (WinNT,500)
OS: Windows2000 SP4

[ ]
RE:25504 Fw: hidesoft.8:25479| RE 25475No.25506
capa さん 05/12/14 00:35
 
capa%鶴亀ユーザです。

> dllfunc( "SelectRecvMail" );が実行しても「新着メール」に移動しない場合の
> 条件が特定出来ましたのでご連絡させて頂きます。

ヘルプはご覧になりましたか? 何か勘違いされているようですが、
SelectRcvdMailは新着メールを選択する関数ではありません。

SelectRcvdMail関数のヘルプより
> この関数は、直前の受信動作によって受信したメールを1つ選択します。

[ ]
RE:25506 Fw: hidesoft.8:25479| RE 25475No.25507
ダヴィンチ1958 さん 05/12/14 01:30
 

2005/12/14(水) 01:00:20

こんにちは、capaさん

ダヴィンチ@ユーザーです。

レスありがとうございます。

そのヘルプは既に確認済です。
お手数をお掛けして申し訳ございませんでした。

しかもそのヘルプには、”選択したメールは、「新着メール」のフラグがOFFに
なり、
また、RecvMailCountInFolderの返す値も減っていきます。”という記述がござ

ます。

つまり選択しなければいつまでも新着メールのフラグがONになっていると
解釈しました。

それなのでメールを受信後、その次にメールを受信しない受信動作があっても
新着メールを選択した事にはなりませんので、ONのままになっていると
解釈しました。
私の解釈が間違っているのでしょうか?

capaさんが何を言わんとしているのかいまひとつ意味がわかりませんが・・・

メールを受信後に次の受信動作でメールが受信されなくても
直前に受信した新着メールへジャンプできるマクロ関数を
用意して欲しいです。

秀まるお2さんにご確認を頂きたいと存じます。

/*
** タイトル:『hidesoft.8:25506| RE 25504 Fw: hidesoft.8:25479| RE 25475
タスクから起動時のマク』
** 発信日:2005年12月14日(水) 00:35:06
** 発信者:capaさん
*/
>capa%鶴亀ユーザです。
>
>> dllfunc( "SelectRecvMail" );が実行しても「新着メール」に移動しない場合の
>> 条件が特定出来ましたのでご連絡させて頂きます。
>
>ヘルプはご覧になりましたか? 何か勘違いされているようですが、
>SelectRcvdMailは新着メールを選択する関数ではありません。
>
>SelectRcvdMail関数のヘルプより
>> この関数は、直前の受信動作によって受信したメールを1つ選択します。

--
メーラー: HidemaruMail 4.60beta6 (WinNT,500)
OS: Windows2000 SP4

[ ]
RE:25507 Fw: hidesoft.8:25479| RE 25475No.25510
capa さん 05/12/14 10:51
 
capa%鶴亀ユーザです。
わたしからはこれで最後にします。

>それなのでメールを受信後、その次にメールを受信しない受信動作があっても
>新着メールを選択した事にはなりませんので、ONのままになっていると
>解釈しました。
>私の解釈が間違っているのでしょうか?

再度ヘルプの同じ部分を引用します。
> この関数は、直前の受信動作によって受信したメールを1つ選択します。

あくまでもSelectRecvMailが選択するのは「直前の受信動作」で受信し
たメールであって「新着メール」ではないということです。直前の受信
動作で受信がされなければ、たとえ新着メールがあってもそれは選択さ
れません。25504でダヴィンチさんが問題だと思われて秀まるおさんに確
認を求めている例も、ヘルプに記載されている仕様どおりの動きです。

SelectRecvMailが直前の受信動作ではない新着メールまで選択するよう
になると、この関数を使っているほとんどのマクロは困ってしまいま
す。以上をご承知の上で

>メールを受信後に次の受信動作でメールが受信されなくても
>直前に受信した新着メールへジャンプできるマクロ関数を
>用意して欲しいです。

とおっしゃられているのなら、特に私は何も言うことはありません。

ただ、現状でも直前の受信かどうかに関係なく新着メールを選択したい
だけなら、flag=hot を設定するなどして検索すれば現状でも可能です。

[ ]
RE:25510 Fw: hidesoft.8:25479| RE 25475No.25514
秀まるお2 さん 05/12/14 12:48
 
 僕も自分で作っておきながらよく分かってないのでなんですが、
SelectRecvMail関数の仕様はcapaさんのおっしゃる通りのようです。「hot」の
フラグが付いたメールを適当に選択するんじゃなくて、hotであって、さらに
メールの送受信日付/時刻が直前の送受信開始時刻以上であるという条件が入っ
てました。

>メールを受信後に次の受信動作でメールが受信されなくても
>直前に受信した新着メールへジャンプできるマクロ関数を
>用意して欲しいです。

 capaさんの話にあるように、hotフラグ付きのメールを検索したらいいような
気がします。

 それでダメそうってことならば、「直前の受信を実行した時刻」って変数を書
き換えたり取り出したりする関数を用意してもいいですけど。

[ ]
RE:25514 タスクから起動時のマクロNo.25520
ダヴィンチ1958 さん 05/12/15 01:03
 

2005/12/15(木) 00:07:43

こんにちは、秀まるお2さん

ダヴィンチ@ユーザーです。

SelectRecvMail関数の仕様については、了解致しました。
しかしあのヘルプを読んだだけであそこまでの仕様(記述がない事まで)を
明確に断言できるcapaさんはすごいと思いました。
私には真似できません。

それはともかくとして、私がやりたい事をもう一度整理させて頂きます。

<目的>

 ・定期受信で常駐している秀丸メールをタスクトレイから呼び出した時に
  既に受信済で未読のメールにジャンプしてくれると手間が省けて便利に
  なります。

 ・未読の迷惑メールが存在してもそこへジャンプしないようにしたい。

<動作条件>

 ・秀丸メールは、定期受信でタスクトレイに常駐してます。

 ・迷惑メールを迷惑メールフォルダへ振り分け設定しています。
  且つ振り分け時に「メール受信をお知らせしない」にチェックが
  入れてあります。

 ・一晩中15分間隔で定期受信してますので、直前に受信した新着メールが
  約15分後に何も受信されないとSelectRecvMail関数でヒットできなくな
  ります。

<hotフラグ付きのメールを検索>について

 ・タスクトレイから本体を起動した時には検索一覧画面を表示する必要は、
  ありません。「下の未読」ボタンで順次未読メールにジャンプさせて、
  メール内容を読んで行きますのでこの案は適用できません。
  
<要望内容>

 ・メールを受信後に次の受信動作でメールが受信されなくても直前に
  受信した新着メールへジャンプできる以下のようなマクロ関数を用意して
  欲しいです。
  
  dllfunc( "SelectHotMail" )
  
  1件でもヒットしたときは1を返す。
  何もヒットしなかったときは、0を返します。
  選択された新着メールは、新着フラグがOFFになります。
  
<対応策>

 ・迷惑メールへの振り分け時に「ゴミ箱へ移動」にして、
  #n = dllfunc( "NextUnread" );を呼び出すようにして
  回避しています。

 ・但しこれでは、未読にしたくないメールも未読にする必要があるので
  やはり使い勝手がいまいちです。

/*
** タイトル:『hidesoft.8:25514| RE 25510 Fw: hidesoft.8:25479| RE 25475
タスクから起』
** 発信日:2005年12月14日(水) 12:48:14
** 発信者:秀まるお2さん
*/
> 僕も自分で作っておきながらよく分かってないのでなんですが、
>SelectRecvMail関数の仕様はcapaさんのおっしゃる通りのようです。「hot」の
>フラグが付いたメールを適当に選択するんじゃなくて、hotであって、さらに
>メールの送受信日付/時刻が直前の送受信開始時刻以上であるという条件が入っ
>てました。
>
>>メールを受信後に次の受信動作でメールが受信されなくても
>>直前に受信した新着メールへジャンプできるマクロ関数を
>>用意して欲しいです。
>
> capaさんの話にあるように、hotフラグ付きのメールを検索したらいいような
>気がします。
>
> それでダメそうってことならば、「直前の受信を実行した時刻」って変数を書
>き換えたり取り出したりする関数を用意してもいいですけど。

--
メーラー: HidemaruMail 4.60beta6 (WinNT,500)
OS: Windows2000 SP4

[ ]
RE:25520 タスクから起動時のマクロNo.25521
capa さん 05/12/15 03:06
 
…誰も「検索して一覧作成を使え」なんて言っていませんよ。最小限の
処理しかしていませんが、よろしかったらどうぞ。

loaddll "tkinfo.dll";
#n = dllfunc("SelectFolder",dllfuncstr("Account",0),"");
#n = dllfunc("SetFindPack", "flag=unread&hot, subfolder=1, inmail=3");
while(dllfunc("FindDown")){
 $s = dllfuncstr("CurrentHeader","X-TuruKame-Filter");
 if(strstr($s,"spam")<0) break;
}

[ ]
RE:25520 タスクから起動時のマクロNo.25523
秀まるお2 さん 05/12/15 09:29
 
 とりあえず、SelectRecvMail関数とSelectRecvMailInFolder関数のヘルプに、

---------------------------------------
 この関数で選択できるのは、あくまで「直前の受信動作で受信したメール」だ
けであって、直前よりもっと前に受信したメールは選択できません。具体的には、
メールの送受信日付/時刻が直前の受信動作の開始時刻よりも後のメールしか選
択されません。
---------------------------------------

 という補足を入れさせていただきます。

 それと、SelectHotMail関数の追加についてですが、しいて追加するとしたら、
NextPrevCustom関数のパラメータ1で任意のフラグ指定をサポートするって方向
かなぁと思います。

 もし、capaさんのやり方でダメでしたら、追加してもいいです。

[ ]
RE:25523 タスクから起動時のマクロNo.25535
ダヴィンチ1958 さん 05/12/15 20:53
 

2005/12/15(木) 20:47:31

こんにちは、秀まるお2さん

ダヴィンチ@ユーザーです。

capaさん、秀まるお2さんレスありがとうございます。
どちらかといえば、NextPrevCustom関数のhotフラグ対応版を希望致します。

それまでは、未読メールの閲覧設定とタスクから起動されるマクロの
NextMail関数でしのぎます。

capaさんにはわざわざマクロを書いて頂いて申し訳ありませんでした。

いろいろありがとうございました。

/*
** タイトル:『hidesoft.8:25523| RE 25520 タスクから起動時のマクロ』
** 発信日:2005年12月15日(木) 09:29:23
** 発信者:秀まるお2さん
*/
> とりあえず、SelectRecvMail関数とSelectRecvMailInFolder関数のヘルプに、
>
>---------------------------------------
> この関数で選択できるのは、あくまで「直前の受信動作で受信したメール」だ
>けであって、直前よりもっと前に受信したメールは選択できません。具体的には、
>メールの送受信日付/時刻が直前の受信動作の開始時刻よりも後のメールしか選
>択されません。
>---------------------------------------
>
> という補足を入れさせていただきます。
>
> それと、SelectHotMail関数の追加についてですが、しいて追加するとしたら、
>NextPrevCustom関数のパラメータ1で任意のフラグ指定をサポートするって方向
>かなぁと思います。
>
> もし、capaさんのやり方でダメでしたら、追加してもいいです。

--
メーラー: HidemaruMail 4.60beta6 (WinNT,500)
OS: Windows2000 SP4

[ ]
RE:25535 タスクから起動時のマクロNo.25540
秀まるお2 さん 05/12/16 12:57
 
 ちょっと仕様を変えて実装しました。SetFindPackにて、flag=XXXXと指定した
対象のメールを探す仕様にしました。

    loaddll "tkinfo.dll";
    #n = dllfunc("SetFindPack", "flag=hot");
    #n = dllfunc("NextPrevCustom", "findflag", "down", "", "Over");

 みたいな形になります。

 あと、NextPrevCustom関数の第4パラメータに、

  RollAccount
  RollAll
  RollFolderAccount
  RollFolderAll

 も指定できるようにします。

 あんまりテストしてないので、出来れば次のβ版(V4.60β7)にて試してみて
欲しい所です。

[ ]
RE:25540 タスクから起動時のマクロNo.25552
ダヴィンチ1958 さん 05/12/17 00:25
 

2005/12/17(土) 00:24:21

こんにちは、秀まるお2さん

ダヴィンチ@ユーザーです。

迅速に対応頂きありがとうございました。
検証させて頂いた結果は、別途ご連絡させて頂きます。

/*
** タイトル:『hidesoft.8:25540| RE 25535 タスクから起動時のマクロ』
** 発信日:2005年12月16日(金) 12:57:40
** 発信者:秀まるお2さん
*/
> ちょっと仕様を変えて実装しました。SetFindPackにて、flag=XXXXと指定した
>対象のメールを探す仕様にしました。
>
>    loaddll "tkinfo.dll";
>    #n = dllfunc("SetFindPack", "flag=hot");
>    #n = dllfunc("NextPrevCustom", "findflag", "down", "", "Over");
>
> みたいな形になります。
>
> あと、NextPrevCustom関数の第4パラメータに、
>
>  RollAccount
>  RollAll
>  RollFolderAccount
>  RollFolderAll
>
> も指定できるようにします。
>
> あんまりテストしてないので、出来れば次のβ版(V4.60β7)にて試してみて
>欲しい所です。

--
メーラー: HidemaruMail 4.60beta6 (WinNT,500)
OS: Windows2000 SP4

[ ]
RE:25540 タスクから起動時のマクロNo.25553
ダヴィンチ1958 さん 05/12/17 00:43
 

2005/12/17(土) 00:40:21

こんにちは、秀まるお2さん

ダヴィンチ@ユーザーです。

以下のようなマクロを実行しましたが、
「NextPrevCustomの第1パラメータ不正です」
「NextPrevCustomの第4パラメータ不正です」

───────────────────────────────────
loaddll "TKInfo.dll";
// 新着メールに移動
#n = dllfunc("SetFindPack", "flag=hot");
#n = dllfunc("NextPrevCustom", "findflag", "down", "", "RollAll");
endmacro;
freedll;
───────────────────────────────────
/*
** タイトル:『hidesoft.8:25540| RE 25535 タスクから起動時のマクロ』
** 発信日:2005年12月16日(金) 12:57:40
** 発信者:秀まるお2さん
*/
>    loaddll "tkinfo.dll";
>    #n = dllfunc("SetFindPack", "flag=hot");
>    #n = dllfunc("NextPrevCustom", "findflag", "down", "", "Over");

--
メーラー: HidemaruMail 4.60beta7 (WinNT,500)
OS: Windows2000 SP4

[ ]
RE:25553 タスクから起動時のマクロNo.25558
秀まるお2 さん 05/12/17 17:25
 
 すみません。デバッグバージョンだとちゃんと動作して、リリース版もちゃん
とビルドしたはずなんですが、なぜかリリース版が古いままになってました。

 次のバージョン時まで少々お待ちください。

[ ]