SSブログ

アンインストーラ作成日記 前編 - 「プログラムの追加と削除」へ登録 [プログラミング]

仕事で作っていたソフトウェアで、客から「インストーラを作ってくれ」との要望が発生。
「適当なディレクトリにコピーするだけだから、不要では?」とも思ったのですが、開発費がちゃんと出るので作ることになりました。
「(業務で使用するソフトウェアだから消すことは無いので)アンイントーラは必要ない」との事だったので、ディレクトリ選択ダイアログを表示して、そこにファイルをコピーするだけのチャチなインストーラを作成しました。

数ヵ月後。

客から「アンインストーラを作ってくれ」との要望が発生。
要らないって言ったじゃんと思いつつも、今度も開発費がちゃんと出るので作ることに。

ソフトウェアのアンインストールと言えば、コントロールパネルの「プログラムの追加と削除」から行うのが普通(?)なので、「プログラムの追加と削除」にアンインストーラの登録を行うことにします。

「プログラムの追加と削除」への登録はレジストリの操作で行います。

レジストリキー

\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

の下に適当な名前のキーを作成。

作成したキーに次の名前の値を作成します。(どっちも文字列型)

DisplayName
UninstallString

「DisplayName」には、「プログラムの追加と削除」に表示される名前を指定。
「UninstallString」には、アンインストールを行う実行ファイルのパスを指定。

さて、
\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
の下に『適当な名前のキー』を作成すると、さらりと言ってますが、これが意外に面倒で、

  • 他のプログラムが使用している名前を使ってはいけない。
  • 同じプログラムを同じディレクトリに上書きでインストールする時は、同じ名前にする。
  • 同じプログラムを違うディレクトリにインストールする時は、違う名前にする。
  • 同じプログラムが違うディレクトリに複数インストールされている時に、そのうちのどれか一つに上書きインストールする時は、上書きされるものと同じ名前にする。

ってな感じになります。

と、まぁ、アンイントーラの作成と言いつつ、これはインストーラが行う作業なのですが、これで、「プログラムの追加と削除」にプログラムが登録され、「削除」ボタンで、「UninstallString」に指定した実行ファイルが起動するようになります。

「UninstallString」に指定した実行ファイルでは、インストールしたファイルを削除する等のアンインストール処理をする訳ですが、この時、「プログラムの追加と削除」に登録する時に作成したレジストリキーを自分で削除しないといけません

[飛行機] 今日の一冊
モモ―時間どろぼうとぬすまれた時間を人間にかえしてくれた女の子のふしぎな物語 (岩波少年少女の本 37)

モモ―時間どろぼうとぬすまれた時間を人間にかえしてくれた女の子のふしぎな物語

  • 作者: ミヒャエル・エンデ
  • 出版社/メーカー: 岩波書店
  • 発売日: 1976/09
  • メディア: 単行本

タグ:VisualC++
nice!(0)  コメント(1)  トラックバック(0) 

nice! 0

コメント 1

KAN

はじめまして。
長年(といっても数ヶ月)の謎が解けました。
ありがとうございます。
by KAN (2006-09-22 20:44) 

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。