マクロでのウインドウ切り替え時のトラブル?No.00505
ばほ さん 01/04/09 18:25
 
秀丸エディタマクロ作者会議室で、やりとりをしたのですが、不具合のようなので報
告します。

鶴亀メールの「送受信が一段落したとき」に実行するマクロとして以下のマクロを登
録します。

loaddll "TKInfo.dll";
#n =dllfunc("NewMail");
#Trs_winh =hidemaruhandle(0);
message "OK 1";
$s =dllfuncstr("SetHeader","To", "xxx@aa.aa");
$s =dllfuncstr("SetHeader","Subject", "TEST");
#n =dllfunc("SetEditorAccount", "仕事用");
message "OK 2";

通常なら、"OK 1"が出たときに、空白の新規メールウインドウがトップにあり、"OK
2"が、出たときに、ヘッダ部分に値が書き込まれます。
しかし、常駐鶴亀状態で、送受信すると、"OK 1"が出たとき、新規メールウインドウ
はトップになく、"OK 2"が出たときも、新規メールのヘッダは変わりません。

これは、不具合ではないでしょうか?

[ ]
RE:00505 マクロでのウインドウ切り替え時のトラブル?No.00545
秀まるお2 さん 01/04/10 10:08
 
> しかし、常駐鶴亀状態で、送受信すると、"OK 1"が出たとき、新規メールウインドウ
> はトップになく、"OK 2"が出たときも、新規メールのヘッダは変わりません。

 新規メールのウィンドウがトップに出てこないのは、仕様ってことになります。
Windows(98以降)の仕組み上、裏で動作しているウィンドウが表に強制的に出るこ
とは不可能となってしまいました。

 ただし、その場合にマクロがうまく動作しないのはバグなので、このバグについて
は修正させていただきます。

 少々お待ちを。

[ ]
RE:00545 マクロでのウインドウ切り替え時のトラブル?No.00841
ばほ さん 01/04/13 12:16
 
秀まるお様

ご回答ありがとうございます。

> 新規メールのウィンドウがトップに出てこないのは、仕様ってことになります。
>Windows(98以降)の仕組み上、裏で動作しているウィンドウが表に強制的に出るこ
>とは不可能となってしまいました。
>
> ただし、その場合にマクロがうまく動作しないのはバグなので、このバグについて
>は修正させていただきます。
>
> 少々お待ちを。
>
V1.05をダウンロードして使っているのですが、Windowsの仕様上、次のようなマクロ
は正しく動かないということでしょうか?

while(dllfunc("SelectRecvMail")){
#n =dllfunc("MakeForward");
$s =dllfuncstr("SetHeader","To", "aaa@aaa");
#n =dllfunc("SendNow");

#n =dllfunc("SetMainWndTop");
closehidemaruforced(#Trs_winh);
}

自動転送のマクロを作ろうと思っているのですが、上記マクロでは、SetMainWndTop
が働かないので、エラーになります。
転送メールを送った後、quitしてしまえば、一応、正常に終了しますが、メールの参
照位置などを戻す処理ができません。

可能であれば、SendNowした後に、そのエディタをクローズするような関数(SendNow
Close)を作っていただけないでしょうか?

もう一つ、メインウインドウでメールを参照しているときにメール本文を取り出す関
数も欲しいです。これもウインドウ切り替えが自由に行えれば必要ない関数ですが、
今は、MakeForwardなどで、エディタウインドウに表示して、RootBodyLineなどで、
本文を取り出そうとしていますが、そうするとこのエディタウインドウを閉じられな
くなってしまいます。

よろしくお願いします。

[ ]
RE:00841 マクロでのウインドウ切り替え時のトラブル?No.00864
秀まるお2 さん 01/04/13 15:58
 
> V1.05をダウンロードして使っているのですが、Windowsの仕様上、次のようなマクロ
> は正しく動かないということでしょうか?

 正しく動くはずです。正しく動かないのはバグと言うしか無いです。修正させてい
ただきます。(V1.06には間に合ってません)

> もう一つ、メインウインドウでメールを参照しているときにメール本文を取り出す関
> 数も欲しいです。

 RootBodyLineじゃなくて、CurrentBodyLineとかですかね?。しいて作ろうと思え
ば作れますけど、gettext文でも取り出せるとは思いますが…。

 とりあえず要望リストに入れてバグ修正に専念します。

[ ]
RE:00864 マクロでのウインドウ切り替え時のトラブル?No.00868
秀まるお2 さん 01/04/13 17:16
 
 調べてみたら、V1.03かV1.04辺りからのレベルダウンバグでした。すみません。

 でもって、いろいろいじって鶴亀メールのアクティブ化に失敗してもマクロ実行は
うまく動作しつつ、バグも直ったバージョンを作ることに成功しました。

 早めにV1.07をアップロードしたい所ですが、他にもバグが溜まってるのでもうち
ょっと直してからにします。それまではとりあえずV1.02に戻していただいた方がい
いかもしれないです。

[ ]
RE:00868 マクロでのウインドウ切り替え時のトラブル?No.00879
ひろ さん 01/04/13 17:56
 
 秀まるおさん今日は、ひろです。
>  調べてみたら、V1.03かV1.04辺りからのレベルダウンバグでした。すみません。
<中略>
> それまではとりあえずV1.02に戻していただいた方がい
 取り敢えず直ったようなのですが、ばほさんは「hidesoft.8:00868」でも
同様に質問をされています。この時点 (4/4) では、Ver.1.03 は未公開のは
ずなので (公開は 4/12)、別の問題もあるかもしれません。
 Ver.1.07 公開後はぼさんにご確認頂くのが最も良いと思いますが、取り
敢えずご報告までに。

[ ]
RE:00864 マクロでのウインドウ切り替え時のトラブル?No.00963
ばほ さん 01/04/16 09:20
 
秀まるお様

>> もう一つ、メインウインドウでメールを参照しているときにメール本文を取り出す関
>> 数も欲しいです。
>
> RootBodyLineじゃなくて、CurrentBodyLineとかですかね?。しいて作ろうと思え
>ば作れますけど、gettext文でも取り出せるとは思いますが…。
>

勘違いしておりました。gettextなどテキストを処理する関数は、本体では使用でき
ないと思っていました。すみません。

ただ、なぜ勘違いをしていたかを調べて思い出してみると、どうもバグ(仕様?)と
いうか、私の思ったとおりに動かないのです。

#n=dllfunc("SelectPane", 2);
moveto 0,0;
beginsel;
right 120;
message "OK?";

このようなマクロを実行すると、メール本文以外をアクティブにしている場合(フォ
ルダやメール一覧がアクティブな場合)、なにもセレクトされません(セレクトされ
る場合もあるようですが)。

そのため、テキストを処理する関数は、エディタウインドウでしか使用できないと思
いこんでいましたが、これは、バグではないでしょうか?

[ ]
RE:00879 マクロでのウインドウ切り替え時のトラブル?No.00964
ばほ さん 01/04/16 09:34
 
ひろさん、秀まるおさん、こんにちは。

> 秀まるおさん今日は、ひろです。
>>  調べてみたら、V1.03かV1.04辺りからのレベルダウンバグでした。すみません。
><中略>
>> それまではとりあえずV1.02に戻していただいた方がい
> 取り敢えず直ったようなのですが、ばほさんは「hidesoft.8:00868」でも
>同様に質問をされています。この時点 (4/4) では、Ver.1.03 は未公開のは
>ずなので (公開は 4/12)、別の問題もあるかもしれません。
> Ver.1.07 公開後はぼさんにご確認頂くのが最も良いと思いますが、取り
>敢えずご報告までに。

Ver.1.07 をダウンロードしました。本体にマクロの処理が移動しない問題はなくな
り、順調にマクロは動いております。ありがとうございました。
ただ、何が原因かわかりませんが、時々、鶴亀が異常終了するようになってしまいま
した。原因をもう少し絞ってから報告いたします。

ちなみに、最初に質問したときに使用していた鶴亀のバージョンは、4/4日の時点で
の最新公開版だったと思いますが・・・、あまりはっきりと憶えていません。すみま
せん。

[ ]
RE:00963 マクロでのウインドウ切り替え時のトラブル?No.00977
秀まるお2 さん 01/04/16 11:51
 
> このようなマクロを実行すると、メール本文以外をアクティブにしている場合(フォ
> ルダやメール一覧がアクティブな場合)、なにもセレクトされません(セレクトされ
> る場合もあるようですが)。

 メニューの「設定・文字カーソルの表示」がOFFになっていると思ったように動作
しないはずです。マクロで無理矢理ONに切り換えてやる必要があります。

  if( browsemode ) browsemodeswitch;

 をマクロの先頭付近に入れておけばいいです。

[ ]
RE:00977 マクロでのウインドウ切り替え時のトラブル?No.01008
ばほ さん 01/04/16 17:10
 
秀まるお様

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

>
>  if( browsemode ) browsemodeswitch;
>
> をマクロの先頭付近に入れておけばいいです。


[ ]