持ち出しキット利用時の挙動についてNo.26616
tamae さん 09/05/27 14:41
 
こんにちは、不特定環境での利用が多いため秀丸メール用の持ち出しキットを
エディタで活用させてもらっています。どこででも使えて非常に便利なのですが
少しだけ気になる点があります。(持ち出しキット利用は自己責任であるという
ことは一応理解しています。話題としてそぐわない内容でしたらすみません。
その場合は無視してくださって結構です。)

・動作環境での相対パス指定について。
マクロフォルダ、設定ファイルフォルダは常にHidemaru.exeのある
フォルダからの相対と扱われるのに対し、ファイル検索パス(ファイル-開く),
外部ヘルプファイル, Webブラウザ、メールソフト指定のパス などは編集中の
ファイルからの相対としてみなされてしまいます。
(マクロフォルダも ファイルを開く/保存ダイアログので『▼マクロファイル用の
フォルダ』を選んだ時はカレントからの相対として扱われているようです。)
挙動としてはある意味正しいのですが個人的にこれらが変動パス扱いでは困ること
が多く、全て秀丸フォルダ起点で指定したいです。どうにかして秀丸フォルダから
の相対として指定する方法はないでしょうか? (WorkingDirに秀丸フォルダを指定
して起動するのは試してみましたがダメみたいでした。)

・バックアップを作成する場合の保存先(動作環境-ファイル-保存)について。
持ち出しキット利用時もフルパス限定となっています。これは制限上仕方がない
のでしょうか?
また、(持ち出しキットとは直接関係ない要望ですが)バックアップの保存先が存在
しないパスだった場合に、自動でディレクトリ作成を試みてから保存するようには
できないでしょうか。自分の場合バックアップファイルは後生大事に控えたいわけ
ではなく、%TEMP%\Hidebak\ や %RamDiskDrive%\Hidebak\ のような場所にほんの一
時退避しておければいいと考えています。ただ、バックアップパスが存在しないと
上書き保存時に問答無用でアラートが出てしまうため、テンポラリ内などのフォルダ
ごと削除されるかもしれない場所への指定ができないんですよね。

・マクロ内での挙動 macrodirの値と レジストリ系
macrodirは動作環境で指定した文字列がそのまま入ってくるようですね("macro" 等)
またレジストリ系はHmRegIni.iniへのアクセスに限定されるみたいです。

 if (existfile(macrodir,0x10)) { $dllpath = macrodir + "\\dll\\hoge.dll"; }
 else { $dllpath = hidemarudir + "\\" + macrodir + "\\dll\\hoge.dll"; }
 loaddll $dllpath;
macrodirに関しては 上のような記述で回避可能ですし、レジストリはコンセプトを
考えれば当然の挙動ではあります。ただ、持ち出し利用だからこそ環境依存の情報を
レジストリから読み出したいということも結構あります。
(任意アプリの設定ファイルを開くためにアプリのインストール先パスを得たい、等)
getregstr/num() だけでもHmRegIni.dllをバイパスできるような指定というのは…
やはりないものでしょうか?

環境 秀丸エディタ Ver.7.11 / HmRegIni.DLL Ver.1.08 / WinXP SP3

[ ]
RE:26616 持ち出しキット利用時の挙動につNo.26617
秀丸担当 さん 09/05/27 16:29
 

>・動作環境での相対パス指定について。

ファイル検索パス等は、絶対パスしか想定していませんでした。
絶対パスの記述でない場合は、結果的にカレントフォルダである編集中のファイ
ルからの相対として解釈されてしまうようです。

%TEMP%のように環境変数を書けるようにするか、%hidemarudir%というように秀
丸エディタ独自の仕様でインストールフォルダを指定できるようにすると持ち出
しキットでなくても便利かもしれません。
そういうネタとして参考にさせていただきます。

現状で回避するには、ドライブ名を固定にできれば、絶対パスを書いておくこと
で回避できるかもしれません。
Googleなどで「USBメモリ ドライブ名」で検索すると、USBメモリのドライブ名
を固定にする方法なども紹介されているようです。

>(マクロフォルダも ファイルを開く/保存ダイアログので『▼マクロファイル用の
>フォルダ』を選んだ時はカレントからの相対として扱われているようです。)

これは持ち出しキットでなくても通常に動作させているときでもバグでした。
ご指摘ありがとうございます。
修正させていただきます。

>・バックアップを作成する場合の保存先(動作環境-ファイル-保存)について。

こちらは上記のことと同じだと思うので、環境変数などができればいいかもしれ
ないです。(できるかどうかは現時点ではわからないです)

>また、(持ち出しキットとは直接関係ない要望ですが)バックアップの保存先が存在
>しないパスだった場合に、自動でディレクトリ作成を試みてから保存するようには
>できないでしょうか。

こちらは将来バージョンではバックアップの保存先をいろいろ細かく指定できる
ようにする予定で、検討したいと思います。

>・マクロ内での挙動 macrodirの値と レジストリ系

macrodirはマクロでできるということで、そのままということにさせていただこ
うと思います。
レジストリは、試してみたところ確かにそうなってしまうことが確認できました。
言われている通り、持ち出しキットで動作中はレジストリを見ないためで、現状
ではできないです。
現状で回避するためには、dllを作って、dllを介してレジストリを見るしか方法
は無いと思います。

[ ]
RE:26617 持ち出しキット利用時の挙動につNo.26619
tamae さん 09/05/27 23:04
 
レスありがとうございます。

>Googleなどで「USBメモリ ドライブ名」で検索すると、USBメモリのドライブ名
>を固定にする方法なども紹介されているようです。
ドライブレターの変更もしくは SUBSTですね。やはり絶対指定するのが無難という
ことになりますか。

> %TEMP%のように環境変数を書けるようにするか、%hidemarudir%というように秀
> 丸エディタ独自の仕様でインストールフォルダを指定できるようにすると持ち出
> しキットでなくても便利かもしれません。
%hidemarudir%いいですね!これが実現できれば殆ど解決できそうです。
バックアップ保存先の件とともにぜひ前向きな検討をお願いしたいところです。

> ファイルを開く/保存ダイアログので『▼マクロファイル用の>フォルダ』
> 修正させていただきます。
これも、ありがとうございます。個人的にこの機能とても便利で多用しています。
秀丸フォルダやよくつかうフォルダ登録なんかできればと思ったことも一度や
二度じゃないです。

>・マクロ内での挙動 macrodirの値と レジストリ系
dll経由なら大丈夫なんですね。もしやと思いmacrodllの"REGISTORY_READSTR"関数を
試したところ、無事読み出しできました。完全に盲点でした。
ヒントありがとうございました!

[ ]
RE:26619 持ち出しキット利用時の挙動につNo.26621
秀丸担当 さん 09/05/28 11:51
 

>%hidemarudir%いいですね!これが実現できれば殆ど解決できそうです。
>バックアップ保存先の件とともにぜひ前向きな検討をお願いしたいところです。

現時点ではわかりませんが、ネタとして参考にさせていただこうと思います。

>これも、ありがとうございます。個人的にこの機能とても便利で多用しています。
>秀丸フォルダやよくつかうフォルダ登録なんかできればと思ったことも一度や

参考までに、開くダイアログの左上などの▼をクリックして出てくるフォルダヒ
ストリの上でマウスの右ボタンを押すとメニューが出てきて、「ヒストリに常
駐」とすると、ヒストリから消えないようにすることもできます。

[ ]
RE:26621 持ち出しキット利用時の挙動につNo.26628
tamae さん 09/05/29 14:12
 
>参考までに、開くダイアログの左上などの▼をクリックして出てくるフォルダヒ
>ストリの上でマウスの右ボタンを押すとメニューが出てきて、「ヒストリに常
>駐」とすると、ヒストリから消えないようにすることもできます。

メニュー上での右クリックアクションとは気がつきませんでした。
ファイルメニューのファイル履歴も同様にヒストリの固定化が
できるんですね。まさかこんな便利な機能があるとは。
ありがとうございます!

[ ]