秀丸メール終了時のマクロ動作No.34921
twk さん 08/10/18 10:56
 
お世話になっております。
秀丸メールVer5.10を使用中です。

メールエディタを全て閉じるためのマクロとして
以下のような物を作成してみたのですが
(まだ保存されてない段階の物は草稿に保存)、
これをマクロ実行により動作させた場合には
全てのメールエディタが閉じますが、
秀丸メール終了時に自動起動するように設定した場合、
メールエディタが一つ閉じただけで秀丸メール本体が
終了してしまいます。
マクロ自体に問題があるのでしょうか。
それとも秀丸メール終了時には、
なにか環境が変化しているのでしょうか。

loaddll "TKInfo.dll";

#hc = hidemarucount-1;
while( #hc > -1 ) {
 #hh[#hc] = hidemaruhandle(#hc);
 #hc = #hc - 1;
}
#hc = hidemarucount-1;
while( #hc > 0 ) {
 setactivehidemaru #hh[#hc];
 #n = dllfunc("MailType");
 if ( #n == 0 || #n == 1 || #n == 2 || #n == 6 ) {
  #n = dllfunc("SaveDraft");
 }
 setactivehidemaru #hh[0];
 closehidemaru #hh[#hc];
 #hc = #hc - 1;
}

よろしくお願いいたします。

[ ]
RE:34921 秀丸メール終了時のマクロ動作No.34922
h-tom さん 08/10/19 09:29
 

h-tom です。

>それとも秀丸メール終了時には、
>なにか環境が変化しているのでしょうか。

終了時は、メインウィンドウ(秀丸メール本体)が、非表示になるため、
> setactivehidemaru #hh[0];
が、失敗しています。

その為、
> closehidemaru #hh[#hc];
も、失敗しています。(自分自身は閉じられない)

対処は、難しいかな?

[ ]
RE:34921 秀丸メール終了時のマクロ動作No.34923
山紫水明 さん 08/10/19 11:00
 
 twkさん,

 自動マクロ登録でも何か方法があるかも知れませんが,終了自体もマクロでや
るようにするのも一つの方法でしょう。
 お示しのマクロの最初に
#n = dllfunc( "SetMainWndTop" );
最後に
#n = dllfunc( "Exit" );
endmacro;
を付加します。
このマクロをキー登録して,終了は常にそのキーで行うようにします。

     では, (^^)/~
                                        山紫水明
                                        SANSHISUIMEI

[ ]
RE:34922 秀丸メール終了時のマクロ動作No.34925
twk さん 08/10/19 12:28
 
h-tomさん、回答ありがとうございます。

>終了時は、メインウィンドウ(秀丸メール本体)が、非表示になるため、
>> setactivehidemaru #hh[0];
>が、失敗しています。
>
>その為、
>> closehidemaru #hh[#hc];
>も、失敗しています。(自分自身は閉じられない)

なるほど。
終了時にはメインウィンドウをアクティブにするのに
失敗しているわけですね。
でも、一つだけメールエディタが閉じるのは不思議ですね。

>対処は、難しいかな?

難しそうですね。運用を含めて考えてみることにします。

[ ]
RE:34923 秀丸メール終了時のマクロ動作No.34926
twk さん 08/10/19 12:30
 
山紫水明さん、ご提案ありがとうございます。

運用方法も含めて考えてみたいと思います。

[ ]