Windowsのデスクトップアプリのインストーラーがすること、アンインストーラーがすること
ちょっと気になって調べていたのでめもです。まあやってることはほぼ正反対なんですけどね、この子ら。
インストーラーのすること
アンインストーラーのすること
- 登録したレジストリの削除
- 「プログラムの追加と削除」に表示する情報は登録したら必ず削除する
- 立てたフラグはちゃんと回収しましょう
- 配置したアプリケーションの削除
- 自分自身も削除して撤収完了
ざっとこんな感じです。いちばんめんどくさそうなのがいちばん最初のやつです。これはほんとインストーラー作成ツールとかにでも任せたほうがいい気がします。あとはひたすら作業ゲーです。
UACの昇格要求を出す
アプリケーションを起動するときに、「runas」というオプションをつけるか、マニフェストにある「requestedExecutionLevelのlevelを「asInvoker」から「requireAdministrator」に変更」すると昇格要求を出せます。
UACが有効の時、必要な処理だけ管理者に昇格させて実行する: .NET Tips: C#, VB.NET
UACが有効の時、アプリケーションを管理者に昇格させて起動する: .NET Tips: C#, VB.NET
「プログラムの追加と削除」にアプリケーションを登録する
「\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall」以下に一意なキーを登録します。ここにレジストリを登録するには管理者権限が必要なので、登録するときはUACの昇格要求を出しましょう。
最低限登録する値は次の2つで、どちらも文字列です。
- DisplayName
- 一覧で表示される名前
- UninstallString
- アンインストーラーの起動コマンド
自殺アプリケーションの作り方
自分を削除できるまでループするバッチを吐き出して優先度を低くして実行するコードを用意して、処理が済んだら呼び出してやります。バッチファイルは簡単に自殺できるのですねさすが。
Cで書いたものは下で見ることができます。
自殺プログラム