【要望】マクロ関数No.06417
davinci さん 03/02/28 21:44
 
こんばんは、ダヴィンチです。

鶴亀のマクロであるフォルダーに保存したメールの一覧をリスト表示して、
リストから選択したメールの本文を操作したいのですが、現状のマクロでは、
実現できそうにありませんので、以下のマクロ関数の追加をお願い致します。

【機能】
 指定アカウントの指定フォルダーに登録されているメールの
 件数を返す。
【関数名】GetMailCount
【引数1】アカウント名。""はカレントのアカウント名。
【引数2】フォルダ名。
【戻り値】(数値)メールの件数
【使用例】#n = dllfunc( "GetMailCount", "", "受信\\テスト" );
   結果:現在アカウントの「受信\テスト」フォルダー内のメールの数

【機能】
 指定アカウントの指定フォルダーに登録されているメールの情報を返す。
【関数名】GetMailInfo
【引数1】アカウント名。""はカレントのアカウント名。
【引数2】フォルダ名。
【引数3】"subject"=メールのタイトル、"body"=メール本文
【引数4】フォルダー内の先頭からの位置
【戻り値】(文字列)指定キーワードの内容
【使用例】$s = dllfuncstr( "GetMailInfo", "", "受信\\テスト", "subject", 0);
   結果:現在アカウントの「受信\テスト」フォルダー内の先頭のメールの
         タイトル名を取得

以上、ご検討宜しくお願い致します。

[ ]
RE:06417 【要望】マクロ関数No.06418
かわした さん 03/02/28 22:09
 
かわしたです。

>【機能】
> 指定アカウントの指定フォルダーに登録されているメールの
> 件数を返す。

最近 GetFolderMailCount 関数として追加されてますね。

>【機能】
> 指定アカウントの指定フォルダーに登録されているメールの情報を返す。

こちらもSetMailIndex関数やCurrentHeader関数などの組み合わせ
で取得できると思いますが。

[ ]
RE:06418 【要望】マクロ関数No.06423
davinci さん 03/03/01 17:51
 
こんばんは、かわしたさん
ダヴィンチです。

>>【機能】
>> 指定アカウントの指定フォルダーに登録されているメールの
>> 件数を返す。
>
>最近 GetFolderMailCount 関数として追加されてますね。
まさにこれはドンピシャの関数です。
ありがとうございます。

>
>>【機能】
>> 指定アカウントの指定フォルダーに登録されているメールの情報を返す。
>
>こちらもSetMailIndex関数やCurrentHeader関数などの組み合わせ
>で取得できると思いますが。
問題は、こちらです。
本文をコピーしたいのですが・・・

一時的にエディターで表示してから
RootBodyなどを使用しないとダメですかね。

画面をちらつかせたくないんですよん。

[ ]
RE:06423 【要望】マクロ関数No.06424
ひろ さん 03/03/01 18:50
 
 ダヴィンチさん今日は、ひろです。
> 一時的にエディターで表示してから
> RootBodyなどを使用しないとダメですかね。
>
> 画面をちらつかせたくないんですよん。
 画面をちらつかせたくないなら、DisableDraw 関数と disabledraw 文を使
えば良いでしょう。
 ##まあ、これでも最後に一度だけちらつきますが....。
 ##更に 2 枠で使用しているなら、一時的に 3 枠にした方がよいかも。

 あと選択しているメールの本文を取得なので、RootBody 関数ではなく
if(browsemode)browsemodeswitch;
をしてから、gettext 関数を利用することになると思います。

[ ]
RE:06424 【要望】マクロ関数No.06429
かわした さん 03/03/02 12:43
 
かわしたです。ひろさんに先を越されてしまいました(^^;

> 画面をちらつかせたくないなら、DisableDraw 関数と disabledraw 文を使
>えば良いでしょう。
> ##まあ、これでも最後に一度だけちらつきますが....。
> ##更に 2 枠で使用しているなら、一時的に 3 枠にした方がよいかも。

補足しますが、3 枠なら鶴亀本体で選択したメールの本文が
gettext 関数で取得できるから…、という意味です(ですよね?)
ちなみに 3 枠に変更するには

loaddll "tkinfo.dll";
openreg "CURRENTUSER","Software\\Hidemaruo\\TuruKame\\Config";
writeregnum "pane",3;
#n = dllfunc("EnvChanged");

です。しかし、枠の変更に関してはDisableDrawしても表示が変わ
ってしまうようですので、処理の最初と最後にはちらついてしまい
ますけど。

> あと選択しているメールの本文を取得なので、RootBody 関数ではなく
>if(browsemode)browsemodeswitch;
>をしてから、gettext 関数を利用することになると思います。

追記ですが、マクロで文字変数として扱えるサイズには制限があり
ますので、gettext 関数を使ったところで本文全体を文字変数とし
て常に取得するのは無理かと思います。本文取得用の個別関数がな
いのはこの辺の関係もあるのかもしれません。

メール本文を操作するならば、やはり一度そのメールを表示して
insertなりreplaceなりするのが簡単で現実的だと思いますがどう
でしょう?

[ ]
RE:06424 【要望】マクロ関数No.06430
davinci さん 03/03/02 15:43
 
ひろさん、こんにちは
ダヴィンチです。

> 画面をちらつかせたくないなら、DisableDraw 関数と disabledraw 文を使
>えば良いでしょう。
> ##まあ、これでも最後に一度だけちらつきますが....。
> ##更に 2 枠で使用しているなら、一時的に 3 枠にした方がよいかも。

DisableDrawを使用してもなにも変わりませんでした。
私の使い方がまずいのか?

ちらつきに関しては、本マクロを実行した時に
本体メニューが表に表示して、この状態でリスト選択してから
また元のエディター画面に戻るような操作にしましたので
画面の切り替えはあるものの、さほど不自然なちらつきには
なっていないと思います。

近々マクロライブラリーに登録の予定です。

> あと選択しているメールの本文を取得なので、RootBody 関数ではなく
>if(browsemode)browsemodeswitch;
>をしてから、gettext 関数を利用することになると思います。
gettext関数、これは助かりました。
スマートなコーディングが実現出来ました。

いろいろご教示いただきありがとうございました。
今後も宜しくお願い致します。

[ ]
RE:06429 【要望】マクロ関数No.06431
davinci さん 03/03/02 15:53
 
かわしたさん、こんにちは
ダヴィンチです。

>補足しますが、3 枠なら鶴亀本体で選択したメールの本文が
>gettext 関数で取得できるから…、という意味です(ですよね?)
>ちなみに 3 枠に変更するには

そんな事知らずに2枠で使用しましたが、正常に動作できました。
知らない事の強みですか?

>追記ですが、マクロで文字変数として扱えるサイズには制限があり
>ますので、gettext 関数を使ったところで本文全体を文字変数とし
>て常に取得するのは無理かと思います。本文取得用の個別関数がな
>いのはこの辺の関係もあるのかもしれません。
>
>メール本文を操作するならば、やはり一度そのメールを表示して
>insertなりreplaceなりするのが簡単で現実的だと思いますがどう
>でしょう?

今回の使用では、定型文をメールに保存してこれを
送信メニューにコピー&ペーストして、定型文書作成の
補助をさせようというねらいなので、80桁を20行分は
正常に変数にコピー出来ました。
それ以上は、テストしておりませんが・・・

いろりろありがとうございました。
また宜しくお願い致します。

[ ]
RE:06431 【要望】マクロ関数No.06436
秀まるお さん 03/03/03 13:01
 
 既に話が終わってるかもしれませんが、作者としてコメントします。

 まず、メール本文の内容を取得するには、かわしたさんその他のご指摘の通り、
メールを選択してやるしか無いです。選択せずに取得するような仕組みは今のと
ころありません。

 それと、鶴亀メールおよび秀丸エディタのマクロ上での文字列変数には長さの
制限があります。現状で8000バイト程度です。なので、例えば本文を全部変数に
入れようとすると、8000バイト程度を越えた分はカットされます。

[ ]
RE:06436 【要望】マクロ関数No.06444
ダヴィンチ さん 03/03/04 08:58
 
秀まるおさん、おはようございます。
ダヴィンチです。

コメントありがとうございます。

> それと、鶴亀メールおよび秀丸エディタのマクロ上での文字列変数には長さの
>制限があります。現状で8000バイト程度です。なので、例えば本文を全部変数に
>入れようとすると、8000バイト程度を越えた分はカットされます。

これぐらいあれば私の運用(定型文流用)には充分です。

[ ]