runsync2/gofileend の不思議な振る舞いNo.00453
Tetsuichi Hosokawa さん 99/03/04 02:00
 
01:#handle = hidemaruhandle(0);
02:runsync2 "C:\\Program Files\\Hidemaru\\Hidemaru.exe";
03:if (filename == "") {
04:insertfile "D:\\Home\\Takumi\\Sgml\\Macro\\client.msg";
05:$ck = gettext(0, 0, 2, 0);
06:selectall;
07:delete;
08:} else {
09:openfile "D:\\Home\\Takumi\\Sgml\\Macro\\client.msg";
10:$ck1 = gettext(0, 0, 2, 0);
11:gofileend;
12:$ck2 = gettext(0, y, x, y);
13:setactivehidemaru(hidemaruorder(#handle));
14:closehidemaruforced findhidemaru("client.msg");
15:}
16:endmacro;

上記のコードは、runsync2を使用して、適当なプログラムを実行後
新規の秀丸ならば4行目からの処理を、その他の秀丸なら9行目からの
コードを実行するようになっています。
9行目からのコードの方で、2行目をコメントアウトするとこちらの意
図するように開いたウィンドウが閉じられるのですが、なぜか他のプ
ログラムを実行した後だと、ウィンドウが閉じてくれません。

また、11行目のgofileendがコメントになっていると、2行目が有効に
なっていても、今度は意図するとおりウィンドウが閉じられます。

この不思議な振る舞いに付いて、当方の意図するような動作をさせる
為にはどのようにマクロコードを書き直すべきなのか教えていただけ
ませんでしょうか。

[ ]