C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: Visual C++ 2008 ランタイム のチェック


(過去ログ 81 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■48164 / inTopicNo.1)  Visual C++ 2008 ランタイム のチェック
  
□投稿者/ ごぼう男 (17回)-(2010/03/26(Fri) 09:36:49)

分類:[Windows 全般] 

アプリケーションの配布の際、インストーラにブートストラッパーをつけて
Visual C++ 2008 ランタイムライブラリ がインストールされているかチェック
したいのですが、Visual C++ 2008 ランタイムライブラリ がインストールされ
ているかどうかは、レジストリのどこを確認すればよいのでしょうか。
Productキーやフォルダではなく、どうにかレジストリから判断したいので、
よろしければご教授おねがいします。
引用返信 編集キー/
■48170 / inTopicNo.2)  Re[1]: Visual C++ 2008 ランタイム のチェック
□投稿者/ とっちゃん (489回)-(2010/03/26(Fri) 12:03:56)
とっちゃん さんの Web サイト
No48164 (ごぼう男 さん) に返信

> アプリケーションの配布の際、インストーラにブートストラッパーをつけて
> Visual C++ 2008 ランタイムライブラリ がインストールされているかチェック
> したいのですが、Visual C++ 2008 ランタイムライブラリ がインストールされ
> ているかどうかは、レジストリのどこを確認すればよいのでしょうか。
> Productキーやフォルダではなく、どうにかレジストリから判断したいので、
> よろしければご教授おねがいします。

自前のブートストラッパーですか?Productキーがなにを指しているのかわかりませんが...

VSのランタイムインストーラは、msi なので、MsiQueryProductState API で確認する方法が一番確実だと思います。
それではだめ(理由については問いません)という場合は、先々仕様が変わる可能性もあるという前提で...
アンインストールキーをチェックする形になります。

いずれの場合でも、まずは、VS2008がインストールされた環境で、vcredist_???(???は、x86など環境に合わせたものをマッチング)の
product.xml から、vcregistの ProductCode(インストーラの識別情報)を取得します。

そのうえで、API で確認するか、レジストリ(アンインストールキーは、regstr.hに定義されています)にProductCodeのキーがあるかを
確認する(Win7まではこの方法で確認ができますが、将来のOSはわかりません)という形になります。

お手軽さの度合いから行けば、APIを使ったほうが圧倒的に楽です。

引用返信 編集キー/
■48204 / inTopicNo.3)  Re[2]: Visual C++ 2008 ランタイム のチェック
□投稿者/ ごぼう男 (18回)-(2010/03/26(Fri) 23:44:19)
ご指摘の方法を試すため、VC++2008ランタイムのプロダクトコードを調べたところ
{7B33F480-496D-334A-BAC2-205DEC0CBC2D}
のようです。これを使用してブートストラッパーを作れそうです。
ありがとうございました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -