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

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

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

Re[2]: Cインストール済みのアプリケーションファイル(exe)を探す


(過去ログ 143 を表示中)

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

■84196 / inTopicNo.1)  Cインストール済みのアプリケーションファイル(exe)を探す
  
□投稿者/ LPO (1回)-(2017/05/30(Tue) 13:40:13)

分類:[.NET 全般] 

MS visual studio VC++でインストール済みのアプリケーションファイル(exe)を探したいのですが、全ディスクをまんべんなく探すのは基本方法かもしれないが、もっと能率の良い探し方法はないでしょうか。

引用返信 編集キー/
■84197 / inTopicNo.2)  Re[1]: Cインストール済みのアプリケーションファイル(exe)を探す
□投稿者/ とっちゃん (438回)-(2017/05/30(Tue) 14:35:32)
No84196 (LPO さん) に返信
> MS visual studio VC++でインストール済みのアプリケーションファイル(exe)を探したいのですが、全ディスクをまんべんなく探すのは基本方法かもしれないが、もっと能率の良い探し方法はないでしょうか。
>

https://msdn.microsoft.com/en-us/library/windows/desktop/aa372105(v=vs.85).aspx

ここにごく単純な情報がありますが、コンパネの追加と削除に出る一覧から探す方法があります。

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall
HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall

の3か所(Wow6432Nodeは64bitOSのみ)にインストール済みアプリのレジストリ情報があります。
ほしいものがない場合もありますが、これを見るのが一応基本のスタイル。

さらに、msiの場合は(該当のキーの WindowsInstaller という値が1の製品)
UninstallのサブキーのGUIDがProductCodeなのでMSIのAPIを使って細かく調査することも可能です。

APIのリファレンスは
https://msdn.microsoft.com/en-us/library/windows/desktop/aa369426(v=vs.85).aspx

過去ログにアプリのインストールなどを調べるというような話題はなかったと思いますが
http://www.freeml.com/msi という WindowsInstaller や Desktop Bridgeなどインストーラ周りの
話題を扱っているML(メーリングリスト)があります。

良ければこちらものぞいてみてください。

引用返信 編集キー/
■84198 / inTopicNo.3)  Re[1]: Cインストール済みのアプリケーションファイル(exe)を探す
□投稿者/ 魔界の仮面弁士 (1292回)-(2017/05/30(Tue) 14:38:11)
No84196 (LPO さん) に返信
> Cインストール済みのアプリケーションファイル(exe)を探す

C: ドライブにインストール済みのファイルを探す、という意味でしょうか。
C++ 言語を使ってインストール済みのファイルを探す、と意味でしょうか。


> インストール済みのアプリケーションファイル(exe)を探したいのですが

一つのアプリケーションが複数の exe を使うこともありますし、
exe 以外の形式のアプリケーションもありますが、それらは
考慮しなくても良いのでしょうか。


> 全ディスクをまんべんなく探すのは

基本方針はそれで良いと思います。
(シンボリックリンクやジャンクションに気を使う必要があるかもしれません)


また、インストール時の記録をレジストリから拾えますので、
 Win64
  HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
  HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall
 Win32
  HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
の下にある InstallLocation を優先的に探すようにするというのは如何でしょう。



> もっと能率の良い探し方法はないでしょうか。

能率を採るにせよ効率を採るにせよ、まずは
「手段」では無く「目的」を明らかにしておくべきかと思います。

どうして exe を探そうとしているのか、その理由が明確になっていれば、
何か別のアプローチを用いて問題を解決できることもありますし。
引用返信 編集キー/
■84200 / inTopicNo.4)  Re[2]: Cインストール済みのアプリケーションファイル(exe)を探す
□投稿者/ LPO (2回)-(2017/05/30(Tue) 16:31:34)
とっちゃん 様、魔界の仮面弁士 様

本当に勉強になりました!

タイトルの「C」について、C言語入力して変換しようとしたら、いきなり送信にされまして、
そして「C」だけ有効になって、「言語」はなくなりました。

解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -