IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Dotnet Discussion :

Obtenir les informations d'un MSI installé


Sujet :

Dotnet

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Obtenir les informations d'un MSI installé
    Bonjour !

    Je suis à la recherche d'un équivalent .Net d'un truc qui était bien pratique en VBS. L'objet WindowsInstaller.Installer permettant d'obtenir des informations sur un MSI installé sur le serveur à partir du GUID de ce MSI (par exemple le numéro de version pour pouvoir l'afficher dynamiquement dans un site web par exemple).

    Je ne parviens pas à trouver de page décrivant correctement cet objet, et encore moins sont équivalent .Net, est-ce que quelqu'un pourrait me renseigner ?

    Note: Ce n'est pas moi qui est codé la version actuelle en VBScript qui utilise WindowsInstaller.Installer, aussi je n'en sais pas grand chose...

    Merci d'avance à tous ceux qui auraient une piste

  2. #2
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Par défaut
    ca ne fait que lire des clés registres donc il te suffit de trouver ton GUID pour trouver l'endroit où tout est stocké

  3. #3
    Invité
    Invité(e)
    Par défaut
    Merci pour ta réponse rapide !

    J'ai cherché dans la base de registre pour trouver les clés, mais les seules clés que j'arrive à trouver qui ont comme nom mon GUID sont des clés qui soit en contiennent pas les infos que je veux soit, y en a une, mais c'est la clé qui donne les infos de désinstallation... Pas super...

    La clé qui correspond au "produit installé" est dans la clé Product mais n'a pas du tout le même nom (c'est un nom hexadécimal de je-sais-pas-combien-de-caractère)...

    De plus, je ne sais pas comment lire la base de registre à partir de mon appli .Net...

  4. #4
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Par défaut
    http://www.plasma-online.de/index.ht...egsetting.html
    cela peut sûrement t'aider
    sinon, tu crées un MSI bidon, tu l'installes MAIS avant de l'installer, tu lances un sniffeur de registre (voir les outils de Microsoft (sysinternals)). tu verras toutes les clés créées

    De plus, je ne sais pas comment lire la base de registre à partir de mon appli .Net...
    vu la difficulté de la chose (c'est ironique bien sûr), je crois bien qu'on va te laisser chercher 20sec car ca prends deux lignes à coder


    mais n'a pas du tout le même nom (c'est un nom hexadécimal de je-sais-pas-combien-de-caractère)...
    si c'est en hexa, ca ne veut pas dire que ce n'est pas le même nom. reconverti le en ascii pour voir ce que ca exprime

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Louis-Guillaume Morand Voir le message
    Merci, je vais regarder

    Citation Envoyé par Louis-Guillaume Morand Voir le message
    si c'est en hexa, ca ne veut pas dire que ce n'est pas le même nom. reconverti le en ascii pour voir ce que ca exprime
    Bah disons que le GUID c'est déjà de l'hexa (comprendre des chiffres de 0 à 9 et des lettres de a à f) donc je ne vois pas trop comment ça pourrait être la même chose... ... ... En écrivant j'ai jeté un œil sur la fenêtre à coté avec mon GUID et la clé, et en fait, ce sont les mêmes mais... tous mélangés ! Là où dans le GUID on aurait 4632D15E, dans la clé de produit on aura E51D2364 \o/ Je vois pas trop l'intérêt, mais soit.

  6. #6
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Par défaut
    oui mais ton nouveau GUID, tu es allé le chercher pour voir à quoi ca correspond? c'est jamais là pour faire joli

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bon, je m'en sors bien, j'ai trouvé comment lire la clé que je veux, c'est cool. Merci pour ton aide

    Par contre, est-ce qu'il existe un moyen de parcourir les sous-clé d'une clé ou les valeurs d'une clé ? Du genre... Si je veux la liste des produits installés, je peux voudrais parcourir les sous-clés de la clé "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" et obtenir leurs valeurs. Je n'ai pas trouvé le moyen de parcourir la base de registre, mais seulement de rechercher une valeur précise pour une clé précise... Est-ce qu'il y a une solution ?

  8. #8
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Dans la classe RegistryKey tu as les méthodes GetSubKeyNames et GetValueNames

  9. #9
    Invité
    Invité(e)
    Par défaut
    Merci smyley !

    Par contre, du coup, ça me donne l'impression qu'on ne peut que récupérer une sous-clé directe... Comment est-ce que je peux faire pour avoir un objet RegistryKey qui corresponde par exemple à la clé "XXX\YYY\ZZZ\AAA\BBB" pour pouvoir parcourir ses sous-clés ?

    Au niveau de l'objet Registry, j'ai l'impression qu'on peut soit chercher une valeur dans une clé (avec GetValue) soit récupéré par exemple la clé LOCAL_MACHINE (avec la propriété LocalMachine) mais je ne vois pas de fonction qui ferait un truc du genre "RegistryKey GetKey(string path)"...

  10. #10
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Registry.LocalMachine.OpenSubKey(...) pour ouvrir une sous clef de HKLM ... idem pour HKCU, etc...
    Faudrait vraiment que tu regardes la msdn pour apprendre à te servir du registre ... (Registry, RegistryKey et tout le tralala)

  11. #11
    Invité
    Invité(e)
    Par défaut
    Bah justement, je croyais avoir lu dans les MSDN que cette fonction permetait la récupération d'une sous-clé directe... Mais en fait non, j'ai dû halluciner J'avoue que j'ai un peu de mal avec les MSDN à trouver ce dont j'ai besoin ! Mais bon, je ferai des tests demain pour essayer tout ça, merci de ton aide !

Discussions similaires

  1. Réponses: 4
    Dernier message: 23/09/2008, 19h40
  2. Obtenir les informations d'une stacktrace
    Par Drannor dans le forum Langage
    Réponses: 2
    Dernier message: 08/04/2008, 12h08
  3. Réponses: 6
    Dernier message: 31/03/2008, 12h10
  4. Obtenir les informations géographique mondiale
    Par Husqvarna dans le forum Services
    Réponses: 1
    Dernier message: 08/03/2008, 12h31
  5. Obtenir les informations de version
    Par Masmeta dans le forum C++Builder
    Réponses: 3
    Dernier message: 13/07/2007, 13h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo