マクロ用フォルダについてご相談No.13882
秀まるお2 さん 03/01/22 19:04
 
 マクロ用のフォルダについて、大幅な仕様変更をしようかなぁと思います。

 もともとの経緯を説明させていただくと、

  1.マクロを実行するためには「マクロ用のフォルダ」にマクロを入れるとい
      う基本原則があるがために、複数のマクロが1つのフォルダにごちゃまぜ
      になってしまい、何が何だか分からない。
      特に複数のマクロファイルをセットにして動作している高度なマクロ類を
      まぜこぜで入れてしまうと、もうどれが何用なのか分からない。
  2.鶴亀メールを単品インストールした場合と秀丸エディタ併用の場合とでマ
      クロ用フォルダが違うために、非常に混乱する。

 ってな所です。さらには、

  3.マクロをプラグイン的に見せたい。インストール/アンインストールを自
      動で出来るようにし、さらにプラグインの設定を統一的に管理できたらな
      およい。

 という話もあります。

 それで、現状を打開すべく新しい仕様を考えました。

  1.原則として、マクロ(あるいはマクロのセット)はそれ用のフォルダを作
      成してそこに置いて使ってもらう。「マクロ用のフォルダ」は過去の遺物
      とする。
  2.「マクロ登録」や「マクロ実行」のダイアログボックスでのマクロファイ
      ル名の指定は、原則としてフルパスで行う仕様とする。マクロファイルを
      指定するダイアログボックスは、現在の「ファイル・開く」と同じような
      物とし、マクロ用フォルダの履歴も表示する。
  3.現在の「macrodir」とは別に、「mymacrodir」というキーワードを用意し、
      これの返す値は現在実行中のマクロの置いてあるフォルダとする。新しい
      マクロからは、なくべく「mymacrodir」を使ってもらうようにする。
      (設定ファイルなどは、各マクロ固有のフォルダに置いてもらう)
  4.マクロ用のインストーラー/アンインストーラーを用意して、秀丸エディ
      タ/鶴亀メールに添付するか、またはマクロに添付して使ってもらうこと
      とする。

 というのはどうでしょ?

[ ]
RE:13882 マクロ用フォルダについてご相談No.13883
ながさわ さん 03/01/22 19:26
 
こんにちは、ながさわです。

スタンスは賛成です。

ところで、マクロ中でexecmacroで他のマクロを動かすとき、その相手マクロが
別配布だったりすると(他人のマクロを利用している場合など)、どこにインス
トールされているか判らなくなりますね。
マクロインストール時に、登録名とインストール場所を何か(レジストリなり何
らかのファイルなり)に持つようにして、execmacro実行時は

1.フルパスの場合はそのパスをそのまま信用。
2.マクロファイル名の場合は、mymacrodirを検索後、なければ登録情報をスキャ
  ンする。
3.登録名の場合は登録情報をスキャンする。

とか考えたんですが。あるいは、完全に別なコマンド・関数(登録マクロのパス
を返す)を用意していただくか。
(2., 3.の区別をどうするかまでは考えが及ばず。)

[ ]
RE:13882 マクロ用フォルダについてご相談No.13884
ひろ さん 03/01/22 22:19
 
 秀まるおさん今日は、ひろです。
>   1.原則として、マクロ(あるいはマクロのセット)はそれ用のフォルダを作
>       成してそこに置いて使ってもらう。「マクロ用のフォルダ」は過去の遺物
>       とする。
 別に過去の遺物にする必要はないのでは? 何故なら、現状でもフルパスでの
指定が直接タイプすれば可能だからです。よって問題は、マクロ用フォルダの
存在ではなく、マクロ用フォルダにあるファイルしか、リストアップされない
ことだと思います。ですから
>       マクロファイルを
>       指定するダイアログボックスは、現在の「ファイル・開く」と同じような
>       物とし、マクロ用フォルダの履歴も表示する。
が実現されれば、マクロ用フォルダはそのままで、フルパスでなければ、現状
のようにマクロフォルダからの相対パスと解釈すればよいと思います。
 実は私は、勝手にフォルダに分けて相対パスで指定してる(^^)。
 どちらにしても、マクロの登録ダイアログ・ボックスの横幅を広くして頂か
ないと、見にくくてしょうがないですね(^^)。

>   3.現在の「macrodir」とは別に、「mymacrodir」というキーワードを用意し、
 必要有りません。なぜなら currentmacrodirectory が有るから。なるべく
これを使うというのは賛成。

>   4.マクロ用のインストーラー/アンインストーラーを用意して、秀丸エディ
>       タ/鶴亀メールに添付するか、またはマクロに添付して使ってもらうこと
>       とする。
 マクロを公開する人は小数でしょうから、配布は別でマクロに添付で良いと
思います。またマクロは、初心者には導入 (登録) が解らないようですから、
このインストーラを使用したら、マクロの空き番号に自動で登録が出来ると良
いですね。
 削除 (アンインストール) に関しては、「マクロの登録」に [削除] ボタン
が有れば良いのでは? ただレジストリを使用していたり、何らかの理由でマク
ロとは別にフォルダに *.ini を作成している場合も有ると思うので、その対
処も必要ですよね。
 一つ気になるのは、フォーラムにマクロを書き込まれた場合ですね。
//マクロのファイルネーム
//「マクロの登録」(メニュー) に書き込まれる名前
マクロの内容
という書式が決まっていれば、
(1)クリップボードの内容をファイルに保存
(2)登録
という作業を行う命令を用意するなどすれば、新たにできれば解消しますが...。

[ ]
RE:13882 マクロ用フォルダについてご相談No.13885
encodingshiftjis さん 03/01/23 00:21
 
CLSID,Dll地獄とか配備(ディプロイメント)、アッセンブリ・マニフェストとかに
つながってゆく話ですね。
昔からあるのはPath環境変数のように、検索場所の列挙と探索ですが
自動検索は少なくして依存情報を用意して処理するのが傾向と思います。

秀丸からは、macrodir 直下のマクロと直下フォルダ内のマクロを
一覧できるだけでよいと思います。
それ以下のフォルダは個別のマクロで見るだけにして

システムがシンボリックリンクを処理できればリンクでフォルダの
配置を自由にできるが、Windowsではそこまでしなくとも
やって行けると思います。

[ ]
RE:13882 マクロ用フォルダについてご相談No.13886
白雲斎 さん 03/01/23 03:07
 
 白雲斎です。

意見を述べられるような猛者ではないのですが・・・

>  2.「マクロ登録」や「マクロ実行」のダイアログボックスでのマクロファイ
>      ル名の指定は、原則としてフルパスで行う仕様とする。マクロファイルを
>      指定するダイアログボックスは、現在の「ファイル・開く」と同じような
>      物とし、マクロ用フォルダの履歴も表示する。


現状の「マクロ実行」では、「マクロ用フォルダ」直下に置かれたマクロのみが
「表示・選択」できる仕様になっていますよね。しかし、

>原則としてフルパスで行う仕様...
>現在の「ファイル・開く」と同じような物とし...

とすると、単独で実行してほしくない物まで「選択・実行」できてしうような気
がするのですがどうでしょう。

ここから、戯言です・・・
------------------------------------------------------------------------
-

鶴亀の「list.bin」的な物を構築し、その内容をツリー表示すると言うのはどう
でしょうか?(仮に「macro.bin」とする。)

「macro.bin」に取り込む条件は、

・「マクロ用フォルダ」直下にあるものは無条件で取り込む。
・「サブフォルダ」にあるものは何らかの識別条件を設ける。

 例えば、
  登録可能なマクロファイルの一覧をそのフォルダに置いておく。
   (
    [filename]: [説明文]
    exec01.mac: 指定桁数で折り返し
    exec02.mac: カーソル行に罫線を引く
    )

ツリー・ビューでの予想図

  └ [MACRODIR]
        ├ macro1.mac
        ├ macro2.mac
        ├     :
        ├ [SUBMACRODIR1]
        │    ├ exec01.mac 指定桁数で折り返し
        │    ├ exec02.mac カーソル行に罫線を引く
        │    └       :
        └ [SUBMACRODIR2]
              ├ submacro1.mac [説明文]
              ├ submacro2.mac [説明文]
              └      :

[ ]
RE:13886 マクロ用フォルダについてご相談No.13888
秀まるお2 さん 03/01/23 09:53
 
 いろいろご意見ありがとうございます。

 コメントいただいた4名様のご意見に共通に言われてることとしては、現状の
「マクロ・マクロ実行...」などのファイル指定の所で「ファイル・開く」のよ
うな形でなんでも指定できるようなのはかえって不便になりかねないという雰囲
気のようで、とりあえず、現状のマクロ用フォルダ配下をリスト表示する仕様を
発展させる形で、サブフォルダについて、できれば白雲斎さんから提案いただい
たような方式でマクロが見えれば便利そうな気がします。

 ということで、「ファイル・開く」形式にするのは却下します。

 ただし、そうすると、鶴亀メールをインストールしてから秀丸エディタをイン
ストールした時の「マクロフォルダの勝手に移動問題」が解決できませんので、
それはそれでまた別路線の解決策を考えます。

 それと、currentmacrodirキーワードのことは、まったく知りませんでした。
大変失礼しました。

 話を総合すると、

  − 現在のマクロ関係の仕様は、とりあえずそのままとする。
  − 白雲斎さんから提案のあった方式について検討する。
  − さらに、白雲斎さん方式に沿ったマクロ用のインストーラー/アンインス
    トーラーを作る。

 という方向で検討します。

 ながさわさんから問題提起いただいた「execmacroで他のマクロを実行する
時」については、もし問題が起きるなら、マクロ用フォルダ配下のサブフォルダ
を検索するような機能を追加する方向でたぶん解決できると思います。とりあえ
ず問題が起きるまでは現状のままにしておきます。

[ ]
RE:13888 マクロ用フォルダについてご相談No.13889
ひろ さん 03/01/23 12:07
 
 秀まるおさん今日は、ひろです。
> 鶴亀メールをインストールしてから秀丸エディタをイン
> ストールした時の「マクロフォルダの勝手に移動問題」が解決できませんので、
> それはそれでまた別路線の解決策を考えます。
 確かにこれは問題ですね。
 ただこれはマクロの管理方法より、秀丸/鶴亀の本体のインストーラで解決
した方がよいと思います。具体的には、自動化も考えたのですが面倒そうなの
で、例えば次のような仕様はどうでしょうか?
* 既に「マクロ用フォルダ」が指定してある
    現状のまま
*「マクロ用フォルダ」が指定していない
  (1)秀丸側
    A 秀丸のフォルダにマクロがある→処理 2
    B 秀丸のフォルダにマクロが無い→処理 1
      1.鶴亀インストール済み
        a 鶴亀のフォルダに「鶴亀テスト.mac」以外のマクロがある→処理 4
        b 鶴亀のフォルダに「鶴亀テスト.mac」以外のマクロが無い→処理 3
      2.鶴亀をインストールしていない→処理 1
  (2)鶴亀側
    A 秀丸インストール済み
      1.鶴亀のフォルダに「鶴亀テスト.mac」以外のマクロがある→処理 4
      2.鶴亀のフォルダに「鶴亀テスト.mac」以外のマクロが無い→処理 3
        a 秀丸のフォルダにマクロがある→処理 2
        b 秀丸のフォルダにマクロが無い→処理 1
    B 秀丸をインストールしていない→処理 1
* 処理
  1 秀丸のフォルダ直下に「Macro」を作成し「マクロ用フォルダ」に
  2 秀丸のフォルダを「マクロ用フォルダ」に
  3 鶴亀のフォルダ直下に「Macro」を作成し「マクロ用フォルダ」に
  4 鶴亀のフォルダを「マクロ用フォルダ」に

[ ]
RE:13889 マクロ用フォルダについてご相談No.13904
秀まるお2 さん 03/01/24 15:54
 
 ご提案ありがとうございます。

 現状で鶴亀メールに添付している「鶴亀テスト.mac」は、特に呼び出せなく
なってもどうでもいいような気がします。

 ということで、必要な処理は、

>  (2)鶴亀側
>    B 秀丸をインストールしていない→処理 1
>  1 秀丸のフォルダ直下に「Macro」を作成し「マクロ用フォルダ」に

 だけのようです。ただし、このケースでは秀丸エディタ用のフォルダはまだ存
在してないので、鶴亀メール用のフォルダ配下に「Macro」フォルダでも作って
そこをマクロ用フォルダと指定するしか無さそうです。

 将来的に、マクロは全部、マクロ用のインストーラー付きで初心者向けに配布
するようにしたら、特に初心者の人がマクロ用フォルダを意識する必要もなくな
るし、まぁいいかなぁと思います。

[ ]
RE:13904 マクロ用フォルダについてご相談No.13905
ひろ さん 03/01/24 17:28
 
 秀まるおさん今日は、ひろです。
> >  (2)鶴亀側
> >    B 秀丸をインストールしていない→処理 1
> >  1 秀丸のフォルダ直下に「Macro」を作成し「マクロ用フォルダ」に
>
>  だけのようです。
 失礼しました。そもそも元の発言最後は、「→処理 3」でした。
                                                 ^
>  将来的に、マクロは全部、マクロ用のインストーラー付きで初心者向けに配布
> するようにしたら、特に初心者の人がマクロ用フォルダを意識する必要もなくな
> るし、まぁいいかなぁと思います。
 確かにそうですね。

[ ]
RE:13904 マクロ用フォルダについてご相No.13909
JRくん さん 03/01/25 01:07
 

実は昔(もう4年以上前なんですね・・・)に秀丸マクロ用インストーラーを
作っていたりするのですが、これが秀丸のレジストリを勝手に更新する仕様な
ので、この辺りの仕様を変えられるのであれば早めに教えていただけると助か
ります。
(もちろん、仕様変更を拒むものではありません(^^))

http://homepage2.nifty.com/jr-kun/hm_macro.html#MACSETUP


[ ]
RE:13909 マクロ用フォルダについてご相No.13912
秀まるお2 さん 03/01/25 10:48
 
 マクロ用インストーラーが既にあったとは知りませんでした。失礼しました。

 いろいろ調査させていただきます。

[ ]
RE:13888 マクロ用フォルダについてご相談No.13924
EXZS さん 03/01/26 00:30
 
この件、もし可能ならサブフォルダ全てを検索して挿入するというよりも、特定のだ
けメニューに表示するって言うのは可能でしょうか?

サブフォルダー内に適当な設定ファイルを入れておくか、自動的かあるいはマクロイ
ンストール時にその内容をmacro.binに取り込んでもらえる・・・みたいな形に。

案外マクロの中からマクロを呼び出す・・・って処理もやってたりするのですが、そ
のサブマクロって単独で実行したりもしないので特定のおやマクロさえ登録できれば
見やすいと思います。

その上で白雲斎さんの方式みたいにマクロの説明文が展開できて、かつサブフォル
ダーのタイトルも設定できるとうれしいなぁ・・・と思います。

以下ちょっとモディファイさせていただきますが

登録可能なマクロファイルの一覧をそのフォルダに置いておく。

subdirname:
title=なんたらマクロ集

filename:
exec01.mac=指定桁数で折り返し
exec02.mac=カーソル行に罫線を引く


ツリー・ビューでの予想図
  ├ macro1.mac
  ├ macro2.mac
      :
  ├ なんたらマクロ集
  │    ├ 指定桁数で折り返し
  │    ├ カーソル行に罫線を引く
  │    (それ以外のマクロファイルがあっても見えない)


ってな感じです。
・・・サブフォルダの説明なんてサブフォルダ名をそれにしておけば良いのかなぁ?

[ ]
RE:13912 マクロ用フォルダについてご相No.13925
白雲斎 さん 03/01/26 15:40
 
 白雲斎です。

大きなお世話ではありますが、マクロ・インストーラついて考えてみました。

以下、長文で失礼します。

■インストーラ

・秀丸、鶴亀共通のインストーラを作成する。
 (仮に、「macInstall.exe」とする。)
・マクロ配布者には、インストールに必要なファイルを作成してもらう。
 (仮に、拡張子を、「*.minf」、TEXT形式とする)
・拡張子「*.minf」と「macInstall.exe」を関連付ける。
・マクロ使用者には、該当するマクロ群の中から「*.minf」ファイルを
 ダブルクリックしてもらう。
・「macInstall.exe」は、「*.minf」ファイルの内容を読み込んで処理する。
・インストールに成功すれば、履歴を取る。(アンインストールの時に、
 この履歴を参照して削除するファイルを決定する。)

※【「*.minf」ファイル作成】
 手作業で「*.minf」ファイルを作成するのが困難な人のために、
 「macInstall.exe」で「*.minf」ファイルを作成出来るようにする。
 (ウイザード形式?)


■マクロ配布者での想定されるケース

(1) 単一マクロの配布、フォーラムへのアップ

【CASE 1】
    インストーラなんて難しいことを言わずに、配布したマクロを使用者が移動
    やコピーなどして自己責任でして欲しい。

        ・現状と同じく、使用者の自己責任で操作してもらう。
         (フォーラムへのアップは、これのみが適用されるものとする。)

【CASE 2】
    インストーラを使用したい。

        ・配布者は、インストールの場所を選択できる。

         (A) 「マクロ用フォルダ」直下にインストール

            ・インストーラは、単に「マクロ用フォルダ」にコピーするだけ。
             (同一ファイル名が既存する場合を想定して、複数のファイル名
              を指定できるようにする。全てがダメなら、問い合わせ。)

         (B) フォルダを新規作成してその中にマクロを入れる。

            ・「(2) 複数マクロの配布...」を参照。


(2) 複数マクロの配布(フォルダ等も含む)

    フォルダを新規作成して、そこにマクロ群をインストールする。
    この方法を唯一無二の方法とする。
    (同一フォルダ名が既存する場合を想定して、複数のフォルダ名を指定でき
     るようにする。全てがダメなら、問い合わせ。)


■インストール用のデータ・ファイル

----「*.minf」---------------------------------------------------------
signature= ……………… 作成者の署名 (*1)
macroName= ……………… 配布マクロの名前 (*1)
macroVersion=  ………… 配布マクロのバージョン (*1)
macroTitle=  …………… マクロビューで表示される(フォルダ)タイトル
targetEXE= ……………… マクロが秀丸、鶴亀どちらをターゲットにするか。
                        ( 0=両方、1=秀丸、2=鶴亀 )
hidemaruVersion= ……… 秀丸のバージョン指定
turukameVersion= ……… 鶴亀のバージョン指定
installMode= …………… インストール方法の種類を指定
                        ( 0=複数モード、1=単一モード )
saveNames= ……………… 単一マクロ時に付ける保存名の複数候補
saveDirNames=  ………… ディレクトリ作成モードの時に付ける
                        ディレクトリ名の複数候補
fileList={}  …………… インストールしたいファイル名一覧
publicList={}  ………… 実行可能なマクロとして公開したいファイル名一覧
notOverwrite={}  ……… バージョンアップ時に上書きして欲しくない
                        ファイル名一覧 (*2)
-----------------------------------------------------------------------

(*1) 配布マクロのバージョンアップ時は、インストール履歴から
     "signature, macroName, macroVersion"
     を探索し、比較、検討、処理する。
(*2) 基本的に「*.ini」ファイルはバックアップする?



●複数モードで配布したい場合の例

----「配布物一覧」-------------------------
AAAA.mac
BBBB.mac
XXXX.ini
readme.txt
subdir\CCCC.mac
subdir\DDDD.mac
-------------------------------------------

----「*.minf」の内容 ----------------------
signature=秀まるお
macroName=Sample Macro
macroVersion=1.0
macroTitle=インストール試験用マクロ
targetEXE=1
hidemaruVersion=317
turukameVersion=
installMode=0
saveNames=
saveDirNames=sample;test;temporary
fileList={
AAAA.mac;
BBBB.mac;
XXXX.ini;
readme.txt;
subdir\CCCC.mac;
subdir\DDDD.mac
}
publicList={
AAAA.mac: インストールの成否を確認する;
BBBB.mac: 'execmacro' の動作確認をする
}
notOverwrite={
XXXX.ini
}
-------------------------------------------


●単一モードで配布したい場合の例

※readme.txt等の説明書を含める場合は、マクロと同一名とする?

----「配布物一覧」-------------------------
AAAA.mac
-------------------------------------------

----「*.minf」の内容 ----------------------
signature=秀まるお
macroName=Sample Macro
macroVersion=1.0
macroTitle=単一モードインストール試験
targetEXE=2
hidemaruVersion=
turukameVersion=235
installMode=1
saveNames=sample01;sample02;sample03
saveDirNames=
fileList={
AAAA.mac
}
publicList={
AAAA.mac: インストールの成否を確認する
}
notOverwrite={}
-------------------------------------------

[ ]
RE:13924 マクロ用フォルダについてご相談No.13932
秀まるお2 さん 03/01/27 16:08
 
 あれからいろいろ考えようかと思ったんですが、そもそも考える余裕すらあま
り無いです。なので、とりあえず秀丸エディタ本体(および鶴亀メールのマクロ
起動部分)をいじるのはやめることにしました。

 それよりも、JRくん作のマクロインストーラーを研究しないといけないです
が、その前にいろいろやることもあります。

 ということでしばらく保留させていただきます。

[ ]
RE:13925 マクロ用フォルダについてご相No.13933
秀まるお2 さん 03/01/27 16:08
 
 いろいろ考えていただいてありがとうございます。とりあえずJRくん作のマ
クロインストーラーを研究させていただく必要がありそうです。

 少々お待ちを。

[ ]