(しばらくムダ話が続きます。飛ばしたい方はこちらへ)
あなたは、.msiが好きですか?
私は、はっきり言ってキライだね!
なぜかってそりゃ、もちろん面倒だからです。
.exe形式のインストーラなら、右クリックしてコンテキストメニューから「管理者として実行」を選べば済みますよね。ほぼ手間なし。
熟練されたWindowsユーザーなら、インストーラをいきなりダブルクリックなんてしないはずです。アイコンに管理者権限のマークが付いていれば別ですが。この一連の操作が、クセになってしまっているはずなのです。
…私だけじゃないよね?
それなら、.msi形式はどうか?
…
面倒すぎるわ!!!
初見じゃ絶対にわかりませんよ。
右クリックしても「管理者〜」ってのが出てきませんから、普通は「msi形式は管理者権限いらないのかな」と思います。
そしていざインストールを始めてみると、面白い事にエラーメッセージを吐きやがるのです。そしてそのエラーメッセージには、管理者なんて単語は一切入っていないんです。
わかるかこんなもん!!!
そして「msi インストール エラー」とかって検索をかけて、ようやく対処法を見つける… もはや通過儀礼といっても過言ではないでしょう。
慣れてしまえば確かに大した手間ではないのですけど、そうじゃない。そうじゃないんですよ。
msiexec.exeを起動するには、コンソールからインストーラのパスと一緒に呼び出してやる必要があります。
管理者権限のコマンドプロンプトから呼び出せば、自ずとmsiexec.exeも管理者権限になるという仕組みなのですが…
なんかこう、もっとスマートにできないものなんですかね?
Windows 10なら、スタートを右クリックすればすぐに管理者権限でコマンドプロンプト実行できるようになってますけど、Windows 7だとそれだけでも結構手間がかかるんですよ。
「管理者としてインストール」みたいな気楽な感覚で使えたら、私も.msiと仲良くやっていけそうなのに…
EasyMsi
という訳で、EasyMsiというソフトを作ってみました。
どんなソフトかって言うのは、この画像を見てもらえばわかります。
はい、これだけです。
.msiファイルのコンテキストメニューに「管理者としてインストール」を追加するだけ。
ただそれだけですが、個人的には大満足です。こういう細かいとこに手が届く系大好き。
ダウンロードはこちらからどうぞ。
ご安心ください。EasyMsiのインストーラは、.msi形式ではなく.exe形式です。ウイルスチェックも万全。
そのうちVector様に登録申請しますので、もし申請が通ったらこのリンクは消します。
動作を確認したのはWindows 10 (1803)のみですが、Windows Vista以降のOSであれば、正常に動作するかと思います。少なくとも、Windows XP以前のOSでは動作しません。
動作にはMicrosoft .NET Framework 4.6以降が必要です。Windows Updateを素直に受け取っていればまず問題はないはずです。
インストールに必要なディスク容量は700KB程度。
もしそんなにディスクスペースがないという方がおられましたら、自力でなんとかしてください。
現状、日本語と英語に対応しています。インストール時に日本語を選べば「管理者としてインストール(A)」に、英語を選べば「Install as administrator」になります。
それ以外の言語は気が向いたら。
本当に、プログラム的には大した事してないんですよね。マジで数行だけ。
msiexecを管理者として呼び出して、同時にパスを渡してやるっていうシンプルこの上ないコードです。
それよりもむしろ、レジストリの操作とか、あとインストーラの作成に手間取りました。
今回はInno Setupを使ってみた訳ですが、言語によってレジストリ処理を変える方法でずっと詰まってた。結局、命令文にLanguage: xxx
オプション付けるだけでした。
それじゃ、iOS 12のアップデートしてきますーノシ