2.20 での /vf /vF オプションについてNo.06132
ぱと さん 02/12/09 02:22
 
2.20 で実装された、コマンドラインから指定して特定のメールを開くオプショ
ン(/vf 及び /vF)についてです。

これを使って、特定のメールにジャンプするマクロを書いているのですが、この
オプションで、用いる、ファイルパスと、オフセットの情報は、変わってしまう
可能性があるものですので、実際にジャンプしようとするとエラーになってしま
うことがあります。

そこで、もしエラーになったら、今度は、2.21 で実装された、Message-Id によ
る高速Grep 機能に切り替えてメールジャンプの代わりにするというマクロを書
いています。

そこで、要望なのですが

(1) /vf /vF でジャンプに失敗した時のエラーメッセージを抑制できるようにし
て欲しい。

(2)ジャンプに成功したか、失敗したかわかるように、result を返すようにして
欲しい。

もし、可能なようでしたら、お願いしたいのですが・・・

----
ぱと

[ ]
RE:06132 2.20 での /vf /vF オプションにNo.06135
ひろ さん 02/12/09 13:41
 
 ぱとさん今日は、ひろです。
 予め言い訳をしておきますが、どれも確認していません(^^;。
> (1) /vf /vF でジャンプに失敗した時のエラーメッセージを抑制できるようにし
> て欲しい。
 disableerrormsg での表示制御や SetAutoPushTimer,
SetAutoPushTimerMilli でダイアログ・ボックスを閉じるという対処では?
> (2)ジャンプに成功したか、失敗したかわかるように、result を返すようにして
> 欲しい。
 起動オプションということは、run 文が成功したか、つまり起動したかど
うか解らないので、result では判定の仕様がないと思います。そこで、レジ
ストリの LastError を見て判断することは出来ないでしょうか?

[ ]
RE:06135 2.20 での /vf /vF オプションにNo.06138
ぱと さん 02/12/09 15:06
 
ひろ さん

> 予め言い訳をしておきますが、どれも確認していません(^^;。

>> (1) /vf /vF でジャンプに失敗した時のエラーメッセージを抑制できるようにし
>> て欲しい。
> disableerrormsg での表示制御や SetAutoPushTimer,
>SetAutoPushTimerMilli でダイアログ・ボックスを閉じるという対処では?

disableerrormsg では、ジャンプに失敗したときのえらーメッセージは消えませ
んでした。また、いつまでも出ているわけではなくて、次の処理に移れば消えて
くれるようです。SetAutoPushTimer などは試してみますが、できれば、エラーメ
ッセージ自体が出ないような扱いがあるとありがたいんです。

> 起動オプションということは、run 文が成功したか、つまり起動したかど
>うか解らないので、result では判定の仕様がないと思います。そこで、レジ
>ストリの LastError を見て判断することは出来ないでしょうか?

なるほど、そんなところに、えらー状況が反映されるのですね。さっそく確認し
てみます。どうもありがとうございました。

----
ぱと

[ ]
RE:06138 2.20 での /vf /vF オプションにNo.06144
秀まるお さん 02/12/09 17:02
 
 /vfオプションでエラーメッセージが出るならラッキーな方で、エラーが出ず
に別のメールに飛んでしまう可能性があります。

 サーチクロスの場合はタイムスタンプをチェックして常に最新のファイルを対
象として動作する仕組みなので問題ないし、エラーケースにどうするってことは
何も考えてません。

 メール用のファイル名+オフセットが信用できるかどうか、TaskPrize側(ま
たはそれようのプラグイン)でファイルのタイムスタンプをチェックするような
作りにしないとどうしようもならないと思います。

 しいてそちらで対応できないなら、たとえば/vfオプションに追加パラメータ
としてメッセージIDを指定したら、そのファイル名+オフセットで指定された
メールが目的のメールかどう確認して、もし違っていれば適当に検索して表示す
るような機能を鶴亀メール側に作るしか無いです。

[ ]
RE:06144 2.20 での /vf /vF オプションにNo.06147
ぱと さん 02/12/09 17:16
 
秀まるお さん

> /vfオプションでエラーメッセージが出るならラッキーな方で、エラーが出ず
>に別のメールに飛んでしまう可能性があります。

そうですよねえ。ジャンプしたらチェックする必要が本当はありますよね。

> メール用のファイル名+オフセットが信用できるかどうか、TaskPrize側(ま
>たはそれようのプラグイン)でファイルのタイムスタンプをチェックするような
>作りにしないとどうしようもならないと思います。

とりあえず、鶴亀の内部で、メールのクリッピングを行うマクロを作ったので、
ライブラリにアップさせていただいたのですが、これでも、特に、開いたメール
が目的のメールかということはチェックしておりません。エラーになった時だけ、
今回搭載された、高速 Message-Id 検索で、探しなおすという処理を書いてます。

> しいてそちらで対応できないなら、たとえば/vfオプションに追加パラメータ
>としてメッセージIDを指定したら、そのファイル名+オフセットで指定された
>メールが目的のメールかどう確認して、もし違っていれば適当に検索して表示す
>るような機能を鶴亀メール側に作るしか無いです。

あんまり、追加要望ばかり出しても申し訳なく思いますが、確かに、鶴亀のネイ
ティブな機能で、Message-Id を指定して直接メールをオープンできる機能が最終
的に実装されれば、誠にありがたいことは確かです。

現在の高速 Message-Id 検索だと、結果が、DoGrep の一覧になってしまうので、
そこからマクロの制御がちょっと難しいです。(いろいろ研究中)

ご面倒ばかりおかけします。

----
ぱと

[ ]
RE:06147 2.20 での /vf /vF オプションにNo.06157
秀まるお さん 02/12/10 00:01
 
 /vfオプションのパラメータとして、例えばメッセージIDを<>で囲んで指定し
たらそれを検索するとか、鶴亀メールとして適当な解決策はあります。しかし、
完璧な解決にはなりません。

 例えばですけど、メールそのものが既に削除されている場合はエラーにならざ
るを得ません。

 あるいは、ゴミ箱フォルダに移動していたら、果たして/vfオプションで出す
べきなのかどうかという問題があります。鶴亀メールの標準機能として対応する
ならその辺は割り切って使ってもらわざるを得ないです。「ゴミ箱フォルダに入
っているメールは対象外とする」なんてオプションは追加できません。

 また、Message-Idが指定されたとして、それをどの範囲まで検索するかも問題
です。すべてのアカウントのすべてのフォルダを検索するのか、あるいはファイ
ル名として指定された先のフォルダのみを検索するのか、いろいろやりようはあ
ります。

 ということで、根本的な解決にはならず、必ずどこか不満が残ります。

 根本的な解決はどうすればいいかというと、この辺の細かな処理を全部ぱとさ
んなりTaskPrize側が作ることです。メール用ファイルのタイムスタンプを
TaskPrize側で持つようにして、/vfオプションで鶴亀メールを起動する前に
TaskPrize側でタイムスタンプをチェックして、もし違っていれば/vfで飛ばすべ
きでは無いです。/vfで飛ばしてからなんとかしてくれというのは虫のいい話で
あり、上記の通り、検索範囲その他で必ず不満が出ます。

 だから、まずはその辺についてTaskPrizeなりご自分なりで、呼び出し元とし
て可能なやり方を考えて欲しいです。

 鶴亀側でやってもらうしか無いというなら、少なくとも

 − 検索の範囲(対象アカウントや対象フォルダ)をどうするか。
 − 該当するメールが1つも無かった時のアクションをどうするか。
 − 該当するメールが複数あった場合のアクションをどうするか。

 の3点の仕様がはっきりしてる必要があります。

[ ]
RE:06157 2.20 での /vf /vF オプションにNo.06159
ぱと さん 02/12/10 00:34
 
秀まるお さん

いろいろとご面倒をおかけして申し訳ございません。

なんつーか、かんつーか、ぐたぐたと書き始めたのですが、長文になってしまっ
て、さらに秀まるおさんにご迷惑をかけそうなので、やめにしました。

何しろ、今回の私のやりたいことを、実現できるだけの機能は既に実装していた
だいているのですから、一応、現在の鶴亀の仕様の中でしのぐことにしたいと思
います。

んで、このスレッドの最初の要望に立ち戻りますと、/vf /vF で、該当メールが
見つからず、エラーになった場合に、エラーにはなるけど、エラーメッセージは
抑制されるというようなオプション (/vfs /vFs ってな感じでしょうか)は、もし
可能なら実現できるとありがたいです。といっても、面倒なことになるなら、今
の形でしのぎますので、忘れて下さい。

#もしかして、エラーメッセージが抑制されると、レジストリの LastError も
#記録されなくなるかな? そうするとまたこれはこれで困るのですが・・・

本当に、いろいろと申し訳ございませんでした。

----
ぱと

[ ]
RE:06159 2.20 での /vf /vF オプションにNo.06165
秀まるお さん 02/12/10 17:31
 
 Message-Idによる検索機能を追加するといろいろややこしいことになりそうな
のでそれはやめといて、んでは、

 − 起動時オプションに「/z」を追加する。
   turukame.exe /z /vF ... みたいに使うと、ちょうどマクロの
   disableerrormsgを実行したかのように動作することとする。
 − /vfオプション(/vFも含む)に、メッセージIDのパラメータを追加する。
   /vf "ファイル名" オフセット Message-Id みたいな感じとする。
   そうすると、開こうとしたメールのMesage-Idが一致してるかどうか検査
   して、もし違っていればエラー扱いとする。

 ということで、なんとかマクロとの組み合わせによって目的の動作が実現でき
るんじゃないかと思います。(検索結果からメールを開くのは別として)

 ちなみにヘルプファイルは現在書き換えできない状態なので、この辺の説明は
まだヘルプに記載出来ません。その辺ご了承ください。

[ ]
RE:06165 2.20 での /vf /vF オプションにNo.06166
ぱと さん 02/12/10 21:45
 
秀まるお さん

> − 起動時オプションに「/z」を追加する。
>   turukame.exe /z /vF ... みたいに使うと、ちょうどマクロの
>   disableerrormsgを実行したかのように動作することとする。

ありがとうございます。これで、マクロの動作がスマートになると思います。

> − /vfオプション(/vFも含む)に、メッセージIDのパラメータを追加する。
>   /vf "ファイル名" オフセット Message-Id みたいな感じとする。
>   そうすると、開こうとしたメールのMesage-Idが一致してるかどうか検査
>   して、もし違っていればエラー扱いとする。

ジャンプに成功した場合に、Message-Id があってるかどうかチェックするルーチ
ンは、なんとかかんとか書いてみたのですが、ネイティブに実装していただける
ならこれに越したことはありません。ありがとうございます。

> ということで、なんとかマクロとの組み合わせによって目的の動作が実現でき
>るんじゃないかと思います。(検索結果からメールを開くのは別として)

はい、本当にどうもありがとうございます。上記でエラーになった場合に、高速
Message-Id 検索に切り替えたとしても、本当に高速に検索できますので、所期の
目的は達成することができます。MailPath と Offset で見失ったら、こちらで探
して、再度所定の操作をすると、クリップした側の情報を書き直すというような
形にしようかと思います。

いろいろご厄介をかけてすみません。

----
ぱと

[ ]