秀丸エディタマクロインストール用スクリプト

Zip形式で圧縮された秀丸エディタのマクロファイルを、マクロフォルダに展開するWSH(VBS)スクリプトです。 マクロファイルが指定された場合は、マクロフォルダに移動します。

OSの機能を使用してZipファイルの展開を行っている為、このスクリプトの実行には、 "圧縮フォルダ"をサポートしているOSが必要です。(Windows XP以降)

配布ファイルには、以下のファイルが格納されています。

HidemaruMacroInstaller.vbs                  :メインモジュール
HidemaruMacroInstallerSubModule.vbs         :サブモジュール(ファイルの移動処理)
HidemaruMacroInstaller.html                 :説明ファイル
HidemaruMacroInstaller_UAC_Dialog_Vista.png :説明ファイル用画像
HidemaruMacroInstaller_UAC_Dialog_7.png     :説明ファイル用画像

スクリプトと同じ個所に、以下のファイルを作るので、書き込み権限のあるフォルダに展開してください。

HidemaruMacroInstaller.dat                  :秀丸エディタの各種情報を保存
HidemaruMacroInstaller.mac                  :"HidemaruMacroInstaller.dat"作成用マクロ
HidemaruMacroInstaller.log                  :動作ログを記録したファイル
HidemaruMacroInstaller.usrcmd               :アプリケーション実行用データファイル

インストール・アンインストール方法

インストール

スクリプトと同じ場所にファイルを作成するので、書き込み可能なフォルダに展開してください。

Windows Vista以降では、ユーザーフォルダにマクロフォルダが指定されるはずなので、そこでも大丈夫です。 "C:\Program Files"以下には、配置しないでください。

アンインストール

以下のファイルを削除するだけです。

使い方

"HidemaruMacroInstaller.vbs" に ZIP形式で圧縮されたマクロファイルをドロップするだけです。 ZIPファイルの中身が、自動的にマクロフォルダに展開されます。

マクロファイルそのものをドロップした場合は、マクロフォルダに移動します。

Windows Vista以降で、UAC(User Account Control)が有効になっている場合は、 確認のダイアログが表示されるので、許可するよう選択してください。 (プログラム名は、Microsoft(R) Windows Based Script Host になります。)

動作の説明

  1. 秀丸エディタ本体の場所、マクロファイルの場所、一時フォルダを取得。
  2. 一時フォルダに、ZIPファイル名の前に"__"をつけたフォルダを作成し、その中にZIPファイルを全て展開する。
    マクロファイルの場合は、ファイル名の前に"__"をつけたフォルダを作成し、そこにファイルを移動します。
  3. 展開したファイルを、全てマクロフォルダに移動する。
  4. 作成したフォルダを削除。

"3."のみ、"HidemaruMacroInstallerSubModule.vbs" が実行しています。 その他は、"HidemaruMacroInstaller.vbs" が実行しています。

ZIPファイルの例
test.zip
 ├ a.mac
 ├ b.mac
 └ 説明書が入っているフォルダ
    ├ A.css
    └ b.html

"test.zip"を"HidemaruMacroInstaller.vbs" にドロップすると、圧縮ファイル内のファイルをすべて、 マクロフォルダに上書きします。 (同名フォルダ、ファイルがあっても、警告なしで上書き。)

マクロフォルダ
 ├ a.mac
 ├ b.mac
 └ 説明書が入っているフォルダ
    ├ A.css
    └ b.html

となります。

使用時の注意

その他・免責事項

連絡先

履歴

2015/02/15 Ver.1.0.0β1
一通り動くようになったので、テスト目的で公開
2015/07/06 Ver.1.0.0β2

"HidemaruMacroInstallerSubModule.vbs"を修正

2015/10/21 Ver.1.0.0β3

"HidemaruMacroInstaller.vbs"を修正

64bit OSの場合、インストール場所の検索にレジストリのリダイレクト部分も検索するようにした。 (64bit OSに、32bitアプリケーションをインストールした場合への対応)

ちなみに、起動中の秀丸エディタを見つけた場合、レジストの検索結果より、プロセス実行中のパスを優先します。

"HidemaruMacroInstallerSubModule.vbs"を修正

ラベル検索時に空行でエラーになっていたので修正

2015/11/22 Ver.1.0.0β4

"HidemaruMacroInstaller.vbs"を修正

インストール場所の検索に失敗していたのを修正。

2016/08/06 Ver.1.0.0β5

"HidemaruMacroInstaller.vbs"を修正

圧縮ファイルの作成について

特に難しい事はありません。配布したいファイル、フォルダをZIP形式で圧縮するだけです。

注意点としては、同じファイルが存在しても、警告なしで上書きするという動作です。 設定ファイルなどを含めると、上書きしてしまい、設定が初期化される場合があります。

特殊な使い方

圧縮ファイル展開時に、"HidemaruMacroInstaller.lst"を見つけると、 その記述に従い処理を行います。(記述していない内容は実行しません。)

"HidemaruMacroInstaller.lst" は トップレベルにある必要があります。 サブフォルダ内に格納されている場合は、認識しません。

"HidemaruMacroInstaller.lst" は Shift_JISまたはUTF-16LEで作成してください。

基本的に、実行出来るのは「ファイル/フォルダの移動」だけです。 フォルダの作成、ファイルの削除、ファイル名変更は出来ません。 メッセージ表示や、条件分岐(条件は固定)、アプリケーションの実行も可能です。 ファイル/フォルダ操作が必要な場合は、別途外部アプリケーションなどを起動して行ってください。

HidemaruMacroInstaller.lst を見つけた場合、ファイルの内容をすべて読み込み、削除します。 その為、移動対象にはなりません。

HidemaruMacroInstaller.lstの書式

基本は、ファイル/フォルダの移動で、対象と移動先をタブコードで区切って指定します。

移動するファイル/フォルダ名 タブコード(0x09) 移動先フォルダ名

ファイル/フォルダ名は、Zipファイルに格納されたファイル/フォルダ名を指定します。

ワイルドカードを使う事も出来ます。以下の内容だと、"HidemaruMacroInstaller.lst"を含めない場合と同じ動作になります。 (圧縮ファイル内のすべてのファイル/フォルダを、マクロフォルダに移動)
ワイルドカードを指定した場合、上書きの確認ダイアログが表示されます。 ("*.*" を指定した場合は、例外的に確認ダイアログは表示されません。)

*.*  %macrodir%

行頭に"//"がある場合はコメント行と見なします。

移動先に、%hidemarudir%、%macrodir%、%settingdir%、%zipdir% を含めると、適切なパスに変換されます。 (変換結果の末尾に、"\"はつきません。)

%hidemarudir%

秀丸エディタインストールフォルダ
デフォルトでは、"C:\Program Files\Hidemaru"のように、空白を含むため、 <EXEC>系コマンドで引数として使う場合には、「"」ダブルクォートで囲む必要があり生ます。 実行するアプリケーションにもよりますが、「"」ダブルクォートで囲まないと、正しいパラメータとして 渡せない場合があります。

例)<EXEC>    notepad.exe "%hidemarudir%\test.txt"

通常の"移動先"として使う場合には、「"」ダブルクォートは必要ありません。

%macrodir%
秀丸エディタマクロフォルダ
%settingdir%
秀丸エディタ設定フォルダ
%zipdir%
圧縮ファイルを展開したフォルダ

「ファイル名」部分には、以下の「コマンド」が指定可能です。 「コマンド」を指定した場合は、「移動先」の意味が変わります。 「コマンド」は、大文字小文字を無視します。

条件分岐におけるラベルの検索は、後方検索のみです。条件分岐より前のラベルへは移動できません。

<IF_HIDEMARU_64>
移動先:とび先のラベル
秀丸エディタが64bitだった場合、「移動先」で指定されたラベル行を検索して移動する。
<IF_HIDEMARU_32>
移動先:とび先のラベル
秀丸エディタが32bitだった場合、「移動先」で指定されたラベル行を検索して移動する。
<IF_OS_x.x>
移動先:とび先のラベル
動作中のOSのバージョンが一致した場合は、「移動先」で指定されたラベル行を検索して移動する。

"x.x" には、以下の "Version" を指定可能です。小数部分を省力する場合は"*"を指定してください。

<IF_OS_5.*>  → Windows Server 2003、XP、2000のどれかの場合、指定したラベルに移動
<IF_OS_6.0>  → Windows Vistaの場合、指定したラベルに移動
Windows Version
Windows 10 10.0
Windows 8.1 6.3
Windows Server 2012 R2 6.3
Windows 8 6.2
Windows Server 2012 6.2
Windows 7 6.1
Windows Server 2008 R2 6.1
Windows Server 2008 6.0
Windows Vista 6.0
Windows Server 2003 R2 5.2
Windows Server 2003 5.2
Windows XP 64-Bit Edition 5.2
Windows XP 5.1
Windows 2000 5.0
<LABEL>
移動先:ラベル名
「移動先」で指定された文字列をラベルに設定する。
<EXIT>
移動先:無効
処理を終了する。
<MSG>
移動先:表示する内容
「移動先」で指定された文字列を、メッセージとして表示する。表示するメッセージ内の"\n"は改行に変換される。
<EXEC>、<EXEC_W>、<EXEC_USER>、<EXEC_W_USER>

移動先:実行するコマンド文字列 「移動先」で指定された文字列を、コマンドラインとして、そのまま実行します。

UACが有効の場合は、管理者権限で実行されます。 関連づけ起動も可能で、URLを指定すれば、Webブラウザが開きます。

例)<EXEC>    notepad.exe "%hidemarudir%\test.txt"
   メモ帳を使って、秀丸エディタのフォルダにあるtest.txt を開く
例)<EXEC>    http://hide.maruo.co.jp/
   "秀まるおのホームページ" を開く

"_W" がつく場合は、起動したアプリケーションが終了するまで待機します。
"_USER" がつく場合は、実行するのは、"HidemaruMacroInstaller.vbs" を起動したユーザーになります。
"_USER" がついていなくて、UACが有効な場合は、管理者として実行されます。

HidemaruMacroInstaller.lstの例

Zipファイルの内容

  hmonig.074b1.zip
   ├ x64
   │ └ hmonig.dll
   ├ XP-32
   │ └ hmonig.dll
   ├ XP-64
   │ └ hmonig.dll
   ├ COPYING_Onigmo_Oniguruma
   ├ HidemaruMacroInstaller.lst
   ├ hmonig.dll
   └ hmonig.html

HidemaruMacroInstaller.lst の内容

秀丸エディタの実行環境を判定し、対応したDLLをコピーしている。

    <MSG>   秀丸フォルダ「%hidemarudir%」に、"hmonig.dll"を移動します。\nhmonig.dllを使用している場合は、常駐秀丸エディタを含む全ての秀丸エディタを終了させてください。
    
    // 共通処理
    hmonig.html %hidemarudir%
    COPYING_Onigmo_Oniguruma    %hidemarudir%
    
    // 秀丸エディタの実行環境の判定
    <IF_HIDEMARU_64>    x64
    // WINDOWSの判定(32)
    <IF_OS_5.*> XP
    // Vista以降用
    hmonig.dll  %hidemarudir%
    <MSG>   "hmonig.dll" (Vista以降用)のインストール終了。
    <EXIT>
    
    // XP用
    <LABEL> XP
    XP-32\hmonig.dll    %hidemarudir%
    <MSG>   "hmonig.dll" (XP用)のインストール終了。
    <EXIT>
    
    // 64bit用
    <LABEL> x64
    // WINDOWSの判定(64)
    <IF_OS_5.*> XPx64
    x64\hmonig.dll  %hidemarudir%
    <MSG>   "hmonig.dll" (Vista以降用64bit)のインストール終了。
    <EXIT>
    
    // XP(64)用
    <LABEL> XPx64
    XP-64\hmonig.dll    %hidemarudir%
    <MSG>   "hmonig.dll" (XP用64bit)のインストール終了。
    <EXIT>