7
votes

Déterminez le répertoire d'installation de l'application 3rd Party

J'ai une application utilisée sur plusieurs centaines d'ordinateurs de la société que je dois modifier un fichier INI dans le répertoire d'installation de l'application. Les utilisateurs peuvent installer l'application où ils souhaitent être utilisés et peuvent avoir plusieurs versions de l'application installées à tout moment. J'ai besoin de pouvoir trouver ce répertoire d'installation.

Méthodes que j'ai considéré jusqu'à présent:

  • Utilisation du WindowsInstaller pour trouver le produit par nom et rechercher son répertoire d'installation. (de ici ). --Ce a presque travaillé, mais les propriétés que je m'attendais à être peuplées (TargetDir, Appdir) ne sont pas.
  • Recherche par le registre pour trouver le répertoire d'installation de l'application particulière. Ce n'est pas là.
  • msigetcomponentPath ()? J'ai vu cela dans le même lien mentionné ci-dessus, mais je ne sais pas comment la mettre en œuvre. Je peux obtenir le produit produit à l'aide de Windows Installer, mais je ne sais pas comment choisir par programme de choisir un composant et de trouver son identifiant au hasard. Quiconque?

    D'accord, attendons toute autre méthode de détermination programmatique du répertoire d'installation d'une application Windows.


0 commentaires

3 Réponses :


1
votes

Si l'installation est une MSI, l'information de WMI est triviale. La classe Win32_Product a une propriété d'installation pour contenir ces informations.


0 commentaires

2
votes

Utiliser WMI pourrait fonctionner pour certaines personnes, malheureusement, nos utilisateurs n'auront pas d'informations d'identification leur permettant de le faire sur leurs machines: xxx


1 commentaires

WIN32_PRODUCT est diabolique, ne l'utilisez pas: sdmsoftware. com / wmi / why-win32_product-is-bad-news



8
votes

Eh bien, j'ai proposé une solution qui a fonctionné pour moi: xxx


2 commentaires

FYI Si quelqu'un se demande quel DLL se référer à "installateur", c'est en C: \ windows \ system32 \ msi.dll.


en utilisant WindowsInstaller;