自動起動->秀丸メール終了時の動作に関しNo.12007
p_chan さん 05/09/12 19:57
 
はじめましてこんにちわ。

すいません。秀丸メールの問題か否かの切り分けが出来ていない状態で投稿しており
ます。
マクロのなんらかの制約に引っかかっているのか、あるいは自PCのWindowsセキュリ
ティパッチの影響か、なんら切り分け評価をしていない状況で『秀丸メール・バグ関
係』に投稿しております事をまずは御容赦願います。



秀丸メール終了時に、メール発信するように、
自動起動->秀丸メール終了時に以下のようなマクロを設定し使用しています。

〜〜〜〜〜〜〜〜〜
  :
loaddll "TKInfo.dll";

#n = dllfunc( "NewMail");
if (!#n) {
   message "メールの新規作成に失敗しました。" ;
   endmacro;
}
   :
   :
〜〜〜〜〜

以前の環境(すいません。ちゃんとした環境は思い出せないのですが・・・。)では特
に問題がなかったのですが、現在の環境で動作させると
  dllfunc("NewMail") の実行タイミングで
『他のウィンドウがマクロ実行中です。他のウィンドウ上のマクロが終了してからや
り直してください。』
のメッセージが表示されるようになってしまいました。


申し訳ございませんが 秀丸メールの問題か否かの確認をお願い出来ないでしょうか。

当方の環境:
  秀丸メール  : 4.53
  秀丸エディタ: 5.02
  OS          : WinXP SP2

[ ]
RE:12007 自動起動->秀丸メール終了時の動No.12008
秀まるお さん 05/09/13 08:43
 
 その、「他のウィンドウがマクロ実行中です。他のウィンドウ上のマクロが終
了してからやり直してください。」のエラーが出るタイミングは、NewMail関数
を呼び出した時じゃなくて、たぶんですが、秀丸メールを終了させる系の命令を
使った時じゃないかと思います。プログラムの中身を調べてみた限りでは、
NewMail関数の所では出ないはずだと思います。

 マクロの最後の方でどういう処理をしてるか教えて欲しいです。

 たぶん、exitallか何か、秀丸メール関連ウィンドウを全部終了させるような
処理をされてるんじゃないかと思いますが、ちょっとテストした限りでは、

   exitall;
   endmacro;

 とか、

   #n = dllfunc("Exit");
   endmacro;

 ではエラーは出ないようです。

[ ]
RE:12008 自動起動->秀丸メール終了時の動No.12011
p_chan さん 05/09/13 12:08
 
message()を使って色々切り分け評価を試してみたのですが、うまく切り分け出来ま
せんでした。
お手数ですが、全体を添付しますのでマクロの仕様違反等がございましたら御指摘を
宜しくお願いします。
#上記12009、12010は編集途中に誤って送信してしまいましたので削除しました。

〜〜〜〜〜〜〜〜〜〜〜
$To = "xxxxxxxx@hogehoge.com" ;

loaddll "TKInfo.dll";

#n = dllfunc( "NewMail");
if (!#n) {
   message "メールの新規作成に失敗しました。" ;
   endmacro;
}

//テンプレート、署名の削除
#n = dllfunc("SwitchTemplate", "XXXXX");
//本文作成
gofiletop;
insert "xxxx\n";    // 行き先   (必須)


//Headerの書き換え
$s = dllfuncstr( "SetHeader", "To", $To );
$s = dllfuncstr( "SetHeader", "Subject", "xxxx" );

//転送メールの送信
#n = dllfunc("SendNow");
if( #n == 0 ) {
   message "メールの送信に失敗しました。" ;
   endmacro ;
}

freedll;
exit;
〜〜〜〜〜〜〜〜〜〜〜〜〜

[ ]
RE:12011 自動起動->秀丸メール終了時の動No.12012
秀まるお さん 05/09/13 13:15
 
 たぶんですが、テンプレートの"XXXXX"の中で、$(ExecMacro,マクロ名)の命令
を使っているせいじゃないかと思います。手元でテストしてみたら、テンプレー
トに$(ExecMacro)命令があるとエラーになるようです。

 これはこれで、マクロが実行できないのはまずいですけど、とりあえずそうい
うことで、一度SwitchTemplateを外してエラーが回避できるかどうか等試してみ
て欲しいです。それで可能であれば、テンプレートから$(ExecMacro)を外して欲
しいです。

[ ]
RE:12012 自動起動->秀丸メール終了時の動No.12013
秀まるお さん 05/09/13 13:18
 
 今コメントを書いてしまいましたが、やはりそれはそれで違うエラーメッセー
ジが出るようです。テンプレートからExecMacroを使った場合には、

 「マクロ実行中にマクロを多重実行しようとしました。指示されたマクロ実行
はキャンセルされました。
 実行しようとしたマクロ = XXXXXXX.mac」

 のようなエラーが出るようです。

 今回のような「他のウィンドウがマクロ実行中です。…」のようなエラーはこ
ちらでは再現出来ませんでしたが、もうちょっとテストしてみます。

[ ]
RE:12012 自動起動->秀丸メール終了時の動No.12014
秀まるお さん 05/09/13 13:26
 
 タスクトレーに常駐する設定にして、その常駐秀丸メールを終了させたらバグ
が再現しました。

 一応これはバグだと思うので修正させていただきます。もしかしてバグじゃな
いってことでしたらまたお返事させていただきます。

[ ]
RE:12014 自動起動->秀丸メール終了時の動No.12015
p_chan さん 05/09/13 15:13
 
> 一応これはバグだと思うので修正させていただきます。もしかしてバグじゃな
>いってことでしたらまたお返事させていただきます。

上記の件了解しました。
宜しくお願いいたします。

[ ]