@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

インストール済みアプリの取得方法

1
投稿者投稿内容
h0g3
会議室デビュー日: 2007/03/02
投稿数: 1
投稿日時: 2007-03-18 03:33
インストール済みアプリの取得方法について、お訊ねします。
"コントロールパネル" - "プログラムの追加と削除"で取得されている
アプリケーションの一覧ですが、これをC#で実現したいと
考えています。

実行ファイルからアイコンを取得する方法はわかるのですが、
その逆はどのようにすればよいのでしょうか?

よろしくお願いします。
-----------------------------------------
VisualStudio 2005 Pro/WinXP SP2
ちゃっぴ
ぬし
会議室デビュー日: 2004/12/10
投稿数: 873
投稿日時: 2007-03-18 12:23
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

上記配下の subkey で、DisplayName が存在し、SystemComponent が 1 でないもの。
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2007-03-18 13:44
引用:

インストール済みアプリの取得方法について、お訊ねします。
"コントロールパネル" - "プログラムの追加と削除"で取得されている
アプリケーションの一覧ですが、これをC#で実現したいと
考えています。



WMI か Windows Installer APIs を使えば、インストール済みのアプリケーションを列挙したり、インストール済みアプリケーションの情報を取得することが出来ます。

引用:

実行ファイルからアイコンを取得する方法はわかるのですが、
その逆はどのようにすればよいのでしょうか?



質問の意味が分かりません。

実行ファイルは一意に定まると思いますが、「とあるアイコン」が設定されている実行ファイルはいくつも存在している可能性があります。

具体的に、どういったことがしたいのでしょうか?

[ メッセージ編集済み 編集者: 渋木宏明(ひどり) 編集日時 2007-03-18 13:48 ]
ちゃっぴ
ぬし
会議室デビュー日: 2004/12/10
投稿数: 873
投稿日時: 2007-03-18 13:48
引用:

渋木宏明(ひどり)さんの書き込み (2007-03-18 13:44) より:

WMI か Windows Installer APIs を使えば、インストール済みのアプリケーションを列挙したり、インストール済みアプリケーションの情報を取得することが出来ます。



これだと、Windows Installer で install されたものだけ取得されると思います。
Install Shield とかで install されたものも取得する場合は、registry からじゃないとむりだったような気が。。。
とっちゃん
大ベテラン
会議室デビュー日: 2005/07/19
投稿数: 203
投稿日時: 2007-03-19 21:44
引用:

ちゃっぴさんの書き込み (2007-03-18 13:48) より:

これだと、Windows Installer で install されたものだけ取得されると思います。
Install Shield とかで install されたものも取得する場合は、registry からじゃないとむりだったような気が。。。


全部を引っ張るなら、レジストリかな。WMIは未調査なので分らんです。

で、一部ですが、HKLM ではなく、HKCU の同じキーにインストール情報を書くアプリもあります。

本題のアイコンですが、DisplayIcon が有るものについては、それでアイコン情報が取れます。
エントリーがない場合でも WindowsInstaller な製品の場合(WindowsInstaller=1のエントリーがある)は別途API経由でアイコンを引っ張ることができる場合「も」あります。
#こちらはアイコン情報がほかの場所に格納されていることがあるため

_________________
// とっちゃん(高萩 俊行)@わんくま同盟
// とっちゃん’Blog
// MS-MVP for Developer Tools - Visual C++
// WindowsInstallerの話題はhttp://www.freeml.com/msiまで
1

スキルアップ/キャリアアップ(JOB@IT)