loadfile 命令についてNo.06845
foobarr さん 12/02/04 01:43
 
こんにちわ。

以下マクロを実行すると

$$filename = "my_file_name.txt";
loadfile "/m5 " + $$filename;

以下、エラーがポップアップします。
「\m5 my_file_name.txt へのカレントフォルダへの移動に失敗しました。」

もちろん、ファイルは存在しています。


以下も同様にエラーがポップアップします。
loadfile "/m5 /h /r " + $$filename;


新しい秀丸を開かずにリサイクルして使いたいため、openfileではなくloadfileを使
用しています。



【環境】
windows7 64bit
秀丸エディタ ver8.12 32bit

[ ]
RE:06845 loadfile 命令についてNo.06846
山紫水明 さん 12/02/04 10:27
 
 foobarrさん,

>以下、エラーがポップアップします。
>「\m5 my_file_name.txt へのカレントフォルダへの移動に失敗しました。」

 こちらでは,"C:\m5 my_file_name.txt" の新規ファイルが開きます。
 環境の違いかもしれませんが,いずれにしても "/m5" のオプションは効きま
せん。マクロヘルプでは,
 「openfileのパラメータには、hidemaru.exeを起動するオプション がそのま
ま指定できます。」
とありますので,loadfile の場合には無効なのが仕様かなと思います。
 作者から正式コメントがあると思いますが,とりあえずです。

                          山紫水明(ユーザー)
                          SANSHISUIMEI

[ ]
RE:06845 loadfile 命令についてNo.06847
秀まるお2 さん 12/02/04 11:11
 
 loadfile命令ですが、すみませんが、これのパラメータには秀丸メール起動時
のコマンドラインは一切指定出来ないです。

 秀丸メール起動時のコマンドラインを解釈させるにはopenfileでないとダメで
す。なぜというと…、openfileの場合だと秀丸エディタのプロセス起動が発生す
るので、そこでうまくコマンドラインを渡すことが出来ますが、loadfileだとそ
れが出来ないです。

 しいて、loadfileでもコマンドラインを解釈させるようにってことは、技術的
には可能ではありますが…。プロセス起動のタイミングと、既にウィンドウがあ
る状態でのタイミングとでは処理の仕方が変わるケースも多いので、新規にそう
いう処理を作るとなると、ちょっと大変かなぁと思います。

 それで、今回のその「/m5」のケースですが、これについてはとりあえず、
マクロでの別の手段で回避が可能でした。実はヘルプに書いてないやり方なので
すが、

    setcompatiblemode 0x0050;

 としてからloadfileを実行すれば、それで「強制的な読み込み(上書き禁止属
性にもならない)」が可能です。

 その方法でお願いします。

 ヘルプの方には0x0050ってパラメータも指定可能ってことで修正させていただ
きます。

> loadfile "/m5 /h /r " + $$filename;

 /hは、showwindow 0;で同じことが実行可能です。

 /rは、loadfileした後で

    if( ! readonly ) readonlyswitch;

 で出来ます。それでお願いします。

[ ]
RE:06847 loadfile 命令についてNo.06848
foobarr さん 12/02/04 12:18
 
教えて頂いた方法で何とかなりそうです、ありがとうございます。
#「プロセス起動時に・・・」ということで内部の挙動が理解できました。


あと、ヘルプには以下のように書かれていますが、
>setactivehidemaruなどでマクロの実行が他の秀丸エディタに移動してもこの状態は
>引き継がれます。

「setcompatiblemode 0x0050」の状態は、マクロが終了するとどうなりますか?

[ ]
RE:06848 loadfile 命令についてNo.06849
秀まるお2 さん 12/02/04 13:47
 
 マクロが終了したら、setcompatiblemodeでの指示はすべて無かった物と同じ
になります。

[ ]
RE:06849 loadfile 命令についてNo.06850
foobarr さん 12/02/04 15:10
 
今書いているマクロが何とか完成しそうです、ありがとうございました。


> マクロが終了したら、setcompatiblemodeでの指示はすべて無かった物と同じ
>になります。

[ ]