Q&A-ネットワーク編

セットアップウィザード(VB5.0)やディストリビューションウィザード(VB6.0)などのセットアップに関する質問をまとめました。

アンインストールでレジストリの情報を削除するには?
ディストリビューション ウイザード実行中に依存情報追加メッセージが表示されるのですが
配布時に"$(DLLSelfRegisterEx)" の登録エラーが表示されるのですが
配布時にメモリ不足エラーが表示されるのですが

配布時に「システム ファイルが最新ではない」エラーが表示されるのですが


Q アンインストールでレジストリの情報を削除するには?

セットアップウィザードやディストリビューションウィザードで作成したセットアップを使用した場合ですが、インストール時にレジストリに書き込んだキーをアンインストール時に削除する方法はありますか?

A setup1.vbp のソースを修正すればできます

インストール時にレジストリに書き込んだキーをアンインストール時に削除するには、まず、Setup1.exe のソースファイルを修正する必要があります。Setup1.exe のソースファイルは、VB6.0 では以下のディレクトリにインストールされています。

C:\Program Files\Microsoft Visual Studio\VB98\Wizards\PDWizard\Setup1
(注意)ディレクトリはVBのインストール状況により異なる場合があります

このディレクトリの Setup1.vbp を修正します。
修正方法は、RegSetStringValue という関数のコメントを見ればわかります。

'-----------------------------------------------------------
' FUNCTION: RegSetStringValue
'
' 特定の名前の値 (strValueName = name) または名前のない値 (Len(strValueName) = 0)
' をレジストリ キーに関連付けます。
'
' fLog が指定されていない、あるいは True が指定されている場合は、このアクションが
' ログファイルに記録されます。またこの後に、セットアップされているアプリケーションを削除す
' るよう選択すると、この値はアプリケーション削除ユーティリティによって削除されます。
      :
Private Function RegSetStringValue(ByVal hKey As Long, ByVal strValueName As String, ByVal strData As String, Optional ByVal fLog As Boolean = True) As Boolean

つまり、4番目のパラメータに True を設定するのが分かると思います。VB6.0では、デフォルトで True ですが、VB5.0の場合は、False ですので、意図的に True でレジストリに書き込む必要があります。
注意しなければならないのは、まず、RegSetStringValueの書いてある位置ですが、frmSetup1.bas の Form の Load の先頭に記述してもうまくいきません。Log ファイル作成の準備がまだできていません。指定するのは、frmSetup1.bas の Form の Load の真ん中以降に以下のようなコーディングがあると思います。

RegisterFiles

'
' SETUP.LST の [Licenses] セクション内のすべてのライセンスを登録します。
'
RegisterLicenses

この後ろあたりならば、確実にうまく行きます。例えば、次の通りです。

Dim hKey As Long

If RegCreateKey(HKEY_CURRENT_USER, "Software", "Test", hKey) Then
    RegSetStringValue hKey, "1", "VBIT", True
    RegCloseKey hKey
End If

ここで、注意するのは、RegCreateKey の2番目と3番目のパラメータですが、この場合、HKEY_CURRENT_USER\Software\Test というサブキーが作成されますが、アンインストールで削除されるのは、3番目に指定されたサブキー以降が削除されて HKEY_CURRENT_USER\Software というキーは残ります。

詳しくは、RegCreateKey のヘッダーを参考にしてください。


(注意)このページの内容は、Visual Basic5.0(SP3)Visual Basic6.0(SP3)を対象に記述されています。他のバージョンでは、対応できないこともあるので、ご注意願います。

(注意) ここでの情報については、あくまでも各自の責任にて、充分にテストを行ってご使用ください。内容に関する質問については、回答できる保証がありませんので、予めご了承願います


Q ディストリビューション ウイザード実行中に依存情報追加メッセージが表示されるのですが

セットアップ ウィザードやディストリビューション ウィザードの実行中に依存情報が追加できませんのメッセージが表示されるのですが、どうしたら良いでしょうか?

A 標準のコンポーネント以外を指定した場合などに表示されます。

このエラーメッセージは、VBに標準で添付されていないコントロールなどをディストリビューションウィザードで指定した場合などに表示されます。
詳細に付いては、Microsoft の以下のサイトを参考にしてください。(2000/1/12 のアドレスです、見つからない場合は、検索で文書番号の J044807 を検索してください)

http://www.asia.microsoft.com/japan/support/kb/articles/J044/8/07.htm


(注意) ここでの情報については、あくまでも各自の責任にて、充分にテストを行ってご使用ください。内容に関する質問については、回答できる保証がありませんので、予めご了承願います。


Q 配布時に"$(DLLSelfRegisterEx)" の登録エラーが表示されるのですが

セットアップ ウィザードやディストリビューション ウィザードで作成したセットアップで配布すると"$(DLLSelfRegisterEx)" の登録エラーが表示されます、どうしたら良いでしょうか?

A 標準のコンポーネント以外を指定した場合などに表示されます。

このエラーメッセージは、Microsoft Calendar Control などの再頒布が許可されていないコントロールを配布しようとすると表示されます。再頒布が許可されているかは、Visual Studio のディレクトリにある Redist.txt を確認してください。
詳細に付いては、Microsoft の以下のサイトを参考にしてください。(2000/1/12 のアドレスです、見つからない場合は、検索で文書番号の J045849 を検索してください)

http://www.microsoft.com/mscorp/worldwide/japan/support/kb/articles/j045/8/49.htm


(注意) ここでの情報については、あくまでも各自の責任にて、充分にテストを行ってご使用ください。内容に関する質問については、回答できる保証がありませんので、予めご了承願います。


Q 配布時にメモリ不足エラーが表示されるのですが

セットアップ ウィザードやディストリビューション ウィザードで作成したセットアップで配布するとメモリ不足エラーが表示されます、どうしたら良いでしょうか?

A 標準のコンポーネント以外を指定した場合などに表示されます。

このエラーメッセージは、再頒布が許可されていないコントロールを配布しようとすると表示されます。再頒布が許可されているかは、Visual Studio のディレクトリにある Redist.txt を確認してください。
詳細に付いては、Microsoft の以下のサイトを参考にしてください。(2000/1/12 のアドレスです、見つからない場合は、検索で文書番号の J044804 を検索してください)

http://www.asia.microsoft.com/japan/support/kb/articles/j044/8/04.htm


(注意) ここでの情報については、あくまでも各自の責任にて、充分にテストを行ってご使用ください。内容に関する質問については、回答できる保証がありませんので、予めご了承願います。


Q 配布時に「システム ファイルが最新ではない」エラーが表示されるのですが

ディストリビューション ウィザードで作成したセットアップで配布すると「システムにある一部のシステム ファイルが最新ではないので、セットアップを続行できません。」というようなエラーが表示されます、どうしたら良いでしょうか?

A Setup.lst の記述が正しくないか、システムのドライブと Temp フォルダのドライブが違う場合に発生します。

このエラーメッセージは、Setup.lst の [Bootstrap Files] に含まれているシステム ファイルのセットアップ用マクロの記述が正しくないために表示されるそうです。(ディストリビューション ウィザードで作成してもそうなります 。 ひとこと言いたい! 「ならばMSさん、直してよ!」)
また、Windows 95 または Windows 98 がインストールされているドライブと、Temp フォルダのドライブが違う場合などにも表示されるようです。
詳細に付いては、Microsoft の以下のサイトを参考にしてください。(2000/1/18 のアドレスです、見つからない場合は、検索で文書番号の J046872 または J046257 を検索してください)

http://www.asia.microsoft.com/japan/support/kb/articles/j046/8/72.htm
http://www.asia.microsoft.com/japan/support/kb/articles/j046/2/57.htm


(注意) ここでの情報については、あくまでも各自の責任にて、充分にテストを行ってご使用ください。内容に関する質問については、回答できる保証がありませんので、予めご了承願います。