検索一覧実行中の動作No.10120
CHERRYVOICE さん 06/02/22 00:10
 
CHERRYVOICEです。

検索して一覧作成の動作で要望が2点あります。

(1) 検索して一覧作成を実行中に、メールダブルクリックでエディタ
  ウインドウを立ち上げ、「上のメール/下のメール」を実行すると、
  「検索して一覧作成実行中なのでこの操作はできません」という
  メッセージがでますが、この制限を解除できないものでしょうか。
  検索メール数が多いと、長時間操作ができずストレスがたまります。
 
  比較対象として、Outlook Expressでは検索実行中でも同様の操作が
  出来るようです。

(2) 「送信用のエディタ起動時」に自動実行マクロを登録した状態で、
  別のマクロから検索して一覧作成を実行し、メールダブルクリックで
  エディタウインドウを立ち上げ、例えば返信などの操作を行うと、
  前のマクロ実行継続中と見なされて、自動実行マクロが起動できないため
  以降の操作に進めません。
 
  そこで、DoGrep関数に引数を追加するなどで、検索をバックグラウンドで
  実行しつつマクロの実行を継続できるようなインタフェースを用意
  していただけないでしょうか。
 
  手動で検索して一覧作成したときに出来ることが、マクロで検索して
  一覧作成をすると出来なくなる、というのがしっくり来ませんので……
  (仕様としてそういう動作になるというのは理解できるんですが、
    ユーザーの使い勝手として、です。)

よろしくお願いします。

[ ]
RE:10120 検索一覧実行中の動作No.10122
秀まるお さん 06/02/22 11:41
 
> (1) 検索して一覧作成を実行中に、メールダブルクリックでエディタ
>   ウインドウを立ち上げ、「上のメール/下のメール」を実行すると、
>   「検索して一覧作成実行中なのでこの操作はできません」という
>   メッセージがでますが、この制限を解除できないものでしょうか。

 ソースコードを見直したんですが、解除できます。ということで解除してみま
す。

>   そこで、DoGrep関数に引数を追加するなどで、検索をバックグラウンドで
>   実行しつつマクロの実行を継続できるようなインタフェースを用意
>   していただけないでしょうか。

 では、StartDoGrep関数を追加しようと思います。パラメータはDoGrep関数と
同じで。

    #n = dllfunc("StartDoGrep", .....);
    endmacro;

 みたいに、必ずマクロを終了させてもらうということでなら対応できると思い
ます。

[ ]
RE:10122 検索一覧実行中の動作No.10123
CHERRYVOICE さん 06/02/22 12:28
 
> ソースコードを見直したんですが、解除できます。ということで解除してみま
>す。

ありがとうございます。
今まで我慢して使っていたんですが、なかなか慣れることが出来なかったので、
対応可能とのこと、助かりました。

> では、StartDoGrep関数を追加しようと思います。パラメータはDoGrep関数と
>同じで。
>
>    #n = dllfunc("StartDoGrep", .....);
>    endmacro;
>
> みたいに、必ずマクロを終了させてもらうということでなら対応できると思い
>ます。

それで問題ありません。
どうもありがとうございます。

[ ]
RE:10122 検索一覧実行中の動作No.10132
CHERRYVOICE さん 06/02/23 21:56
 
4.61beta10確認しました。
かなり快適になりました。ありがとうございました。

[ ]
RE:10122 検索一覧実行中の動作No.10133
CHERRYVOICE さん 06/02/27 22:15
 
追加していただいたStartDoGrep関数ですが、YenEncode関数と組み合わせると(?)
どうもうまく動かないようです。
「tkinfo.dllのDoGrepのパラメータがおかしいです。」というメッセージが出て、
さらにもう1回マクロを実行しようとすると保護違反で落ちたりします。

以下の簡単なマクロで再現します。
普通のDoGrepでやっていたときは問題なく使えていたマクロですが、
使い方の間違いやまずい点などあればご指摘お願いします。

------------------------

loaddll "TKInfo.dll";

$search_word = input( "本文検索" );
if( $search_word == "" ) endmacro;

$search_account = dllfuncstr( "CurrentAccount" );
$search_folder  = dllfuncstr( "CurrentFolder" );
$search_word = dllfuncstr( "YenEncode", $search_word );

#n = dllfunc( "SetFindPack", "(\"" + $search_word + "\", target=body), inmai
l=0" );
#n = dllfunc( "StartDoGrep", $search_account, $search_folder );
endmacro;

[ ]
RE:10133 検索一覧実行中の動作No.10134
秀まるお さん 06/02/28 09:21
 
 すみません。メモリ解放関係の処理がバグってました。僕がテストした時は気
づきませんでしたが、YenEncodeとか何かヒープを使う処理が関係すると死んで
しまうようです。

 さっそく修正させていただきます。

[ ]
RE:10134 検索一覧実行中の動作No.10135
CHERRYVOICE さん 06/02/28 23:21
 
詳細まで動作確認できてないですが、ざっくりと試した限りでは
4.61beta12で正しく動いてそうです。
ありがとうございました。

[ ]