Inno Setupを利用して複数PCに同様の環境を構築する
公開日:
:
プログラミング, 事務職のプログラミング
ブラウザベースの業務の効率化のためにブックマークレットを作成したのですが、IEの右クリックにブックマークレットを登録するためには、
- 適切なディレクトリにJavascriptを含んだHTMLを設置
- レジストリエディタで設置場所及び右クリックの出現タイミングを設定
ということをしなければなりません。
さすがに全PCでこちょこちょ作業するのも手間なので、インストーラを配布して、各自で作業してもらうことを思いつきました。
Inno Settupという古くからあるインストーラ作成ツールを利用したので記録しておきます。インストーラを作るなんて大それたことだと思っていたのに、意外にも簡単で驚きました。事務職の方でもファイル配布方法のひとつとして覚えておいて損はないと思います。
あとから気付きましたが、バッチファイルでもすべてこなせそうですね。
目次
Inno Setupのインストール
Inno Setupからインストーラをダウンロードしてインストール。メニュー類を英語のままで使うのであれば、特にすることはありません。
Inno Setupの使い方
- インストール後、Inno Setup Compilerを起動
- サンプルスクリプト(インストール手順書のようなもの)を参考に変更していく
- メニューのBuild→Compileでセットアップファイルを作成
と意外にも簡単でした。
Inno Setupのスクリプトについて
サンプルスクリプトが非常に参考になります。サンプルスクリプトはインストールディレクトリのExamplesの中に入っています。今回、Example3.issがレジストリを書き換える動作のサンプルとして使えました。
レジストリを操作するインストーラーを作成する場合、[Setup]、[Files]、[Icons]に加えて[Registry]項目を設定していきます。レジストリ内容については、Regeditでエクスポートしておくと作業が捗ると思います。下記に今回、作成したセットアップスクリプトを記載しておきます。
使っているうちにわかったことをいくつか。
- セミコロンでコメントアウトとなります。
- スクリプト内ではディレクトリ名を表す記法がいくつかあるようです。
- {pf}はProgram Filesですね
- {app}はDefaultDirNameと同じ?
- アイコンは設定しなかった
- OutputDirはuserdocs:Inno Setup Examples Outputの設定でマイドキュメント内のInno Setup Examples Output
- レジストリでDword値はValueDataで設定できるが、10進数による指定のようです
手段と目的が入れ替わってしまわないよう(調べている時間で複数PCの設定が終わってしまうようでは・・・)、今回は最低限の調査にとどめたので詳しいことには触れませんでした。
下記のレジストリ設定により、IEの右クリックで表示されるコンテキストメニューに2項目が追加されます。IEの右クリックメニュー追加についてはぐぐってみてください。
こちらが参考になりました。ありがとうございます。
今回作ったスクリプトファイル(例)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
[Setup] AppName=hoge AppVersion=1.0 DefaultDirName={pf}¥hoge DefaultGroupName=hoge OutputBaseFilename=hogeインストーラ OutputDir=userdocs:Inno Setup Examples Output [Files] Source: "hoge_a.html"; DestDir: "{app}" Source: "hoge_b.html"; DestDir: "{app}" [Icons] [Registry] Root: HKCU; Subkey: "Software¥Microsoft¥Internet Explorer¥MenuExt¥hoge_a"; ValueType: string; ValueData: "{app}¥hoge_a.html"; Flags: uninsdeletekey Root: HKCU; Subkey: "Software¥Microsoft¥Internet Explorer¥MenuExt¥hoge_a"; ValueName: "Contexts"; ValueType: dword; ValueData: "17";Flags: uninsdeletekey Root: HKCU; Subkey: "Software¥Microsoft¥Internet Explorer¥MenuExt¥hoge_b"; ValueType: string; ValueData: "{app}¥hoge_b.html";Flags: uninsdeletekey Root: HKCU; Subkey: "Software¥Microsoft¥Internet Explorer¥MenuExt¥hoge_b"; ValueName: "Contexts"; ValueType: dword; ValueData: "17";Flags: uninsdeletekey |