問)NewMailを閉じる方法No.09634
三月 さん 05/08/17 22:15
 
コマンドライン
TuruKame.exe /XGETML.MAC
で実行する以下のようなマクロを書いたのですが、
NewMailでひらいたウインドウが閉じられません。
SendNowした後に閉じるにはどこをどうすればよいでしょう?

-----
loaddll "TKInfo.dll";

openreg "CURRENTUSER", "Software\\Hidemacro\\samba";
#n =getregnum("last");
#e =getregnum("end");
#m = #n + 10;

if( #m > #e ){
  #m = #e;
}

if( #n < #m ){

  #x = dllfunc( "NewMail" );
  #h = hidemaruhandle(0);

  #x = dllfunc( "SetEditorAccount2", "accountx", 0);
  $sub = "get " + str(#n+1) + " - " + str(#m) ;
  $s = dllfuncstr( "SetHeader", "Subject", $sub );
  $s = dllfuncstr( "SetHeader", "To", "xxxxxxxxxxxx@samba.gr.jp" );

  gofiletop;

  #sndflg = 0;
  while( #n < #m ){
    #n = #n+1;
    insert "get " + str(#n) + "\n";
  }

  writeregnum "last",#n;
  #x = dllfunc("SendNow");

  closehidemaruforced (#h);
}
closereg;

endmacro;
-----

[ ]
RE:09634 問)NewMailを閉じる方法No.09635
秀まるお さん 05/08/17 22:23
 
 SendNowした後のエディタを閉じるには、exit文を使います。

    #n = dllfunc("SendNow");
    if( #n != 0 ) {
        exit;
    }

 みたいなやり方でいいはずです。

 closehidemaruforcedでもいけますが、それを使うなら、setactivehidemaru等
を使って閉じる対象とは別のウィンドウにマクロ実行を移行させてやらないとダ
メです。

 確認はしてませんが、

  closehidemaruforced (#h);

 の所を

  setactivehidemaru dllfunc("MainWnd");
  closehidemaruforced (#h);

 ならいけるかなぁと思います。というか、exitを使えば一発だと思います。

[ ]
RE:09635 問)NewMailを閉じる方法No.09637
三月 さん 05/08/18 09:01
 
> 確認はしてませんが、
>
>  closehidemaruforced (#h);
>
> の所を
>
>  setactivehidemaru dllfunc("MainWnd");
>  closehidemaruforced (#h);
>
> ならいけるかなぁと思います。というか、exitを使えば一発だと思います。

setactivehidemaru でいけました。

実はこのマクロ、複数のMLへのgetメッセージを連続して作成するように
同じパターンを複数並べる(複数のNewMailを実行する)ので、
exitで終われないのでした。

[ ]