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

C# Discussion :

[2.0][c#] Comment detecter si un programme est installe ?


Sujet :

C#

  1. #1
    Membre actif Avatar de 5:35pm
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2006
    Messages : 201
    Points : 217
    Points
    217
    Par défaut [2.0][c#] Comment detecter si un programme est installe ?
    mon application a besoin de savoir si une application est installe ou non sur la machine, je n'ai aucune idee quel classe du framework s'occupe de cela...
    mercie bien :-)

  2. #2
    Rédacteur

    Avatar de Jérôme Lambert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2003
    Messages
    4 451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 451
    Points : 14 357
    Points
    14 357
    Par défaut
    Tu n'as qu'à utiliser le registre de Windows avec la classe RegistryKey.

    Voici un bout de code qui te permettra de récupérer la liste des programmes installés sur la machine (n'oublie pas de donner les droits au registre à ton application):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    RegistryKey mesCles = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall", true);
    foreach (string str in mesCles.GetSubKeyNames())
    {
    Console.WriteLine(str);
    }
    Ps: sans oublier la source ^^
    http://www.dotnet-project.com/Astuce...talles.39.aspx

  3. #3
    Membre actif Avatar de 5:35pm
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2006
    Messages : 201
    Points : 217
    Points
    217
    Par défaut

  4. #4
    Membre actif Avatar de 5:35pm
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2006
    Messages : 201
    Points : 217
    Points
    217
    Par défaut
    Voila, le programme que je veux detecter est Microsoft ActiveSync, et obtenir son chemin d'installation, donc j'ai fait:

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
                RegistryKey mesCles = Registry.LocalMachine.OpenSubKey("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows CE Services", false);
                foreach (string str in mesCles.GetSubKeyNames())
                {
                    Console.WriteLine(str);
                }
                Console.ReadKey();

    mais la methode Registry.LocalMachine.OpenSubKey me retoure un null.
    donc je pense que c'est une histoire de droit d'acces.ce dont je n'ai rien compris a comment ca marche


    EDIT: Ah non ca marche desole! (fallait pas inclure HKEY_LOCAL_MACHINE dans le parametre)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Batch] Comment vérifier si un programme est installé ou non ?
    Par hackoofr dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 15/06/2015, 18h26
  2. [SDL][FAQ/Source] Comment savoir si le programme est actif ?
    Par fearyourself dans le forum Contribuez
    Réponses: 3
    Dernier message: 26/07/2007, 11h34
  3. Réponses: 2
    Dernier message: 16/06/2006, 23h07
  4. Réponses: 1
    Dernier message: 12/06/2006, 16h06
  5. Réponses: 13
    Dernier message: 19/02/2006, 17h54

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