隠しファイルを開いて閉じるマクロNo.07577
でがらし さん 15/05/17 07:12
 
 隠しファイルを開き、そのファイルを閉じるマクロを下記のように作成しました。
しかし、隠しファイルが開かれたままで閉じません。どこが悪いのか、ご教授下さい。

 秀丸は8.52です。

//---------------------------------------
 disabledraw;

 #main = hidemaruhandle(0); // 現秀丸のハンドル

 openfile "/h " + "d:\\waei.txt";

 #sub = hidemaruhandle(0); //マーク用ファイルのハンドル

 setactivehidemaru #main;//現秀丸へ戻る

 closehidemaru #sub;//マーク用ファイルを閉じる

 enabledraw;

 endmacro;
//---------------------------------------

[ ]
RE:07577 隠しファイルを開いて閉じるマクNo.07578
秀丸担当 さん 15/05/18 10:03
 

このマクロの通りに実行してみたところでは、非表示の秀丸エディタは自動的に
閉じました。

考えられそうなこととしては、もし
 openfile "/h " + "d:\\waei.txt";
 insert "xxxx";
といったように編集操作が加わっているとしたら、未保存のファイルということ
になり、closehidemaruは失敗します。

もしそうだとしたら、編集しないか保存済みの状態にするか、
closehidemaruforcedにして強制的に終わらせるといいと思います。

[ ]
RE:07578 隠しファイルを開いて閉じるマクNo.07579
でがらし さん 15/05/18 20:00
 
 レス、ありがとうございます。ご察しの通り、実際は隠れファイルを開いてから編
集作業をしています。その後、隠しファイルを「save;」した後、先のマクロで閉じ
るようにしていますが、うまく閉じないことがあります。

 今回は編集作業を省いて、開いてすぐに閉じるようにしてみたところ、それでも同
じ症状が出ました(隠しファイルが開いたままです)。しかしながら、今日になって
このマクロを起動したところ、今度はちゃんと隠しファイルが閉じます。

 前から、状況によって閉じたり、閉じなかったりがあります。ただ、どういう状況
で変化するのか、同定できないままです。元のファイルと隠しファイルの間の行き来
にトラブルを起こすようですが、様子を見てみます。

[ ]
RE:07579 隠しファイルを開いて閉じるマクNo.07580
秀丸担当 さん 15/05/19 09:53
 

編集状態に関わらずできたりできなかったりするということは、何か他の原因が
ありそうですが、わからないです。

関係しそうなこととしては、既に該当ファイルを開いている場合の挙動の違いが
あります。
既にファイルを開いている場合は、[その他]→[動作環境]→[ファイル]→[排他
制御]の「秀丸エディタで同じファイルを開く場合」の設定が影響します。
これによって、既に開いている秀丸エディタにアクティブが移ったりすることも
あるので、マクロ実行前に既に開いていて、それが未保存の状態であれば、そう
いうことを起こり得ると思います。

この設定は、setcompatiblemodeを指定することで、設定に関わらずマクロ上で
動作を同じにすることができます。
例えば、
setcompatiblemode 0x00000050;
としておくといいかもしれません。

[ ]
RE:07580 隠しファイルを開いて閉じるマクNo.07581
でがらし さん 15/05/19 21:42
 
  これはとてもありがたい情報です。この開いて閉じるマクロにずっと前から先述の
不都合が生じていたんですが、編集中のファイルが保存済みか保存済みでないかの違
いには意識を向けたことがありませんでした。

 ご教示の方法で不都合を回避できそうな気がします。さっそく組み込むことにしま
す。ありがとうございました。

[ ]