3

コンピューターにインストールされているソフトウェアのアイコンを取得しようとしています。

インストールされているソフトウェアリストは、次のレジストリパスから入力されます:HKCU \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Uninstall HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Uninstall HKLM \ SOFTWARE \ Wow6432Node \ Microsoft \ Windows \ CurrentVersion \ Uninstall

重複は、DisplayNameに基づいて除外されます。

次に、キーDisplayIconからアイコンを取得しようとします。存在する場合。DisplayIconの値は、ソフトウェアごとに異なります。いくつかの例は休閑地です:

  • D:\ Program Files \ FileZilla FTP Client \ FileZilla.exe
  • C:\ Program Files \ Common Files \ Microsoft Shared \ OFFICE12 \ Office Setup Controller \ OSETUP.DLL、1
  • D:\ Program Files \ Fiddler2 \ IE_Toolbar.ico
  • dfshim.dll、2
  • D:\ Program Files \ Winamp \ winamp.exe、0
  • etc \ git.ico

このすべての例で、アイコンを使用できます。InstallLocation + DisplayIconが実際のソースでない場合は、InstallLocationでDisplayIcon名を検索できます(例:GetDataBackFor *のDisplayIconはgdbnt.exeなので、これを検索し、見つかった場合は彼のアイコンを取得します)

問題は、revoやwindowsアンインストーラーなどの他のアプリがDisplayIconキーを持たないアプリのアイコンをどのように取得するかです。ルートディレクトリを持つInstallLocationのみがあります。彼らはその場所でicoまたはexeを検索しますか?それらが複数の実行可能ファイルであり、この実行可能ファイルの名前がDisplayNameのように見えない場合はどうなりますか?レジストリにそのような情報がない場合、メインの実行可能ファイルからアイコンをどのようにプールしていますか?このようなアプリの例としては、Google Earth、AppleSoftwareUpdateなどがあります。

4

1 に答える 1

0

インストールされた製品のアイコンに関する情報は、次の場所から見つけることができます。この情報は、Installer \productkeyのレジストリにUninstall-とともに保存されます。

キー名-HKEY_CLASSES_ROOT\Installer \ Products {productID}

値-ProductIcon

ここから、インストールされているアプリケーションのアイコンを取得できます。詳細については、http://newapputil.blogspot.in/2015/06/extract-icons-of-installed-windows_17.htmlをご覧ください。

于 2015-06-16T10:51:19.453 に答える