|
2011/06/11(土) 19:04:34
こんにちは、ダヴィンチ@ユーザーです。
Win32アプリから秀丸メールのメールを表示する仕組みを開発しています。
表示したいメールのmessage_idをあらかじめ取得しておいて、
リストから選択されたらmessage_idを外部ファイルに書き出してから
マクロを呼び出してメールを表示しています。
ただメール表示実行からメール表示まで3〜4秒かかることもあるので
1秒以内に改善できないかと思い、お尋ねします。
大まかなフローは以下の通りです。
1)該当メールをGUI上で選択
2)メール表示を指示
3)メールに該当するmessage_idを外部ファイルに書き出す
4)メール表示用のマクロをオプション指定して秀丸メールを起動
5)該当メールがメールエディタで表示されます。
受信フォルダ直下にある場合は約1秒ぐらいで表示します。
でもそれ以外のフォルダでは3〜4秒かかります。
メールフォルダとメールの合計サイズは約3〜4Gバイトです。
実行しているPCのスペックは、CPU Pentium4 2.6GHz, Memory:1G
Windows XP SP3です。
古いマシンなのでしょぼいです(;--)
但し上記のマシン上でも秀丸メールのmessage_id検索では
どんなに遅くても1秒ぐらいで該当メールをヒットしますので
何か改善策はあるのではないかと思いまして。
どうか皆様のお知恵を拝借させて下さい。
宜しくお願い致します。
※)以下にマクロ側で処理している内容を載せます。
------------------------------------------------------------------
loaddll "tkinfo.dll";
// 受信メール情報ファイルのパスを取得
$home = macrodir + "\\";
$ini = $home + "recvinfo.ini";
// 該当メールのmessage_idを取得
$pack = getinistr( $ini, "cond", "msgid" );
// 検索条件を設定
#n = dllfunc("SelectFolder", dllfuncstr("Account",0),"");
//$pack = "(\"" + $pack + "\",casesense,word,target=person)";
$pack = "(\"" + $pack + "\",casesense,target=person)";
$pack = $pack + ",messageidtarget=messageid,hilight=0,flag=!send,
subfolder=1,inmail=3";
if( #n == 0 ) {
message "フォルダ選択に失敗しました。";
endmacro;
}
// main windows freeze
#n = dllfunc("DisableDraw", 1);
// 検索実行
#n = dllfunc("SetFindPack", $pack );
if( #n == 0 ) {
#n = dllfunc("EnableDraw");
message "FindPackエラー";
endmacro;
}
// 検索対象を設定
#n = dllfunc("FindDownInclude");
if( #n == 0 ) {
#n = dllfunc("EnableDraw");
message "該当メールが見つかりません。";
endmacro;
}
else {
#n = dllfunc("EnableDraw");
// 該当のメールをエディタで表示
#n = dllfunc("OpenMail");
}
endmacro;
------------------------------------------------------------------
|
|