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

Développement Windows Discussion :

Connaitre le numéro de version d'une application externe


Sujet :

Développement Windows

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 68
    Points : 39
    Points
    39
    Par défaut Connaitre le numéro de version d'une application externe
    Bonjour,

    J'aimerai pouvoir récupérer en C# le numéro de version d'une application externe installée sous Windows.
    Sachant que je ne connais pas l'emplacement de l'exe, je connais juste le nom de l'exécutable.

    Connaissez vous une commande C# qui permettrait cela ?

    Merci d'avance

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 754
    Points
    39 754
    Par défaut
    Sans connaitre l'emplacement de l'exe ça me semble difficile... dans ce cas comment sais-tu que l'application est installée ?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 68
    Points : 39
    Points
    39
    Par défaut
    J'ai trois applications installées via clickonce. Le problème est que clickonce installe les applications dans des répertoires dont le nom et l'emplacement peut changer d'une installation à l'autre . Je connais les noms de ces applis. Je les retrouve d'ailleurs dans panneau de configuration, désinstaller un programme. Je voudrai récupérer le numéro de version de chacune de ces applis.

    J'ai essayé ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    public void InstallSoftware()
     
    {
     
    string resultat="";
     
    string resultatversion="";
     
    string Publisher="";
     
    string URLInfoAbout="";
     
    string InstallDate="";
     
    string HelpLink="";
     
    string uninstallKey = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall";
     
    RegistryKey rk = Registry.LocalMachine.OpenSubKey(uninstallKey);
     
    foreach (string skName in rk.GetSubKeyNames())
     
    {
     
    RegistryKey sk = rk.OpenSubKey(skName);
     
    try
     
    {
     
    resultat=sk.GetValue("DisplayName").ToString();
     
    try
     
    {
     
    resultatversion=sk.GetValue("DisplayVersion").ToString();
     
    }
     
    catch
     
    {
     
    resultatversion="";
     
    }
     
    try
     
    {
     
    Publisher=sk.GetValue("Publisher").ToString();
     
    }
     
    catch
     
    {
     
    Publisher="";
     
    }
     
    try
     
    {
     
    URLInfoAbout=sk.GetValue("URLInfoAbout").ToString();
     
    }
     
    catch
     
    {
     
    URLInfoAbout="";
     
    }
     
    try
     
    {
     
    HelpLink=sk.GetValue("HelpLink").ToString();
     
    }
     
    catch
     
    {
     
    HelpLink="";
     
    }
     
    try
     
    {
     
    InstallDate=sk.GetValue("InstallDate").ToString();
     
    InstallDate=InstallDate.Substring(6,2)+"/"+InstallDate.Substring(4,2)+"/"+InstallDate.Substring(0,4);
     
    }
     
    catch
     
    {
     
    InstallDate="";
     
    }
     
    }
     
    catch
     
    {
     
    resultat="";
     
    }
     
    if( resultat!="")
     
    richTextBox1.Text+=resultat+" - Version : "+resultatversion+" - Constructeur : "+Publisher+" - Site : "+URLInfoAbout+" - Aide & Support : "+HelpLink+" - Date d'installation : "+InstallDate+"\n";
     
    }
     
    }

    mais ça ne fonctionne pas. Je ne retrouve pas mes applis.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 68
    Points : 39
    Points
    39
    Par défaut
    Pour ta question : "comment sais-tu que l'application est installée ?". Je ne le sais pas forcément mais disons que ce n'est pas un problème. Si l'application est installée, je récupère le n° de version sinon je ne récupère rien.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 68
    Points : 39
    Points
    39
    Par défaut
    voilà où se trouve par exemple l'exe d'une de mes applis installées par clickonce.
    C:\Users\MonNom\AppData\Local\Apps\2.0\HKPKYWGM.705\3GE22T5W.PRK\NomdeMonAppli_58d1c3c818b21cf0_0001.0000_8ff272192fd079c4

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 754
    Points
    39 754
    Par défaut
    Cherche dans la base de registre, dans HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall. Je pense que c'est là que tu trouveras les infos

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 68
    Points : 39
    Points
    39
    Par défaut
    Je l'ai fait avec le code ci-dessous que j'ai trouvé sur internet et je ne retrouve pas mes applications.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    public void InstallSoftware()
     
    {
     
    string resultat="";
    string resultatversion="";
    string Publisher="";
    string URLInfoAbout="";
    string InstallDate="";
    string HelpLink="";
     
    string uninstallKey = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall";
     
    RegistryKey rk = Registry.LocalMachine.OpenSubKey(uninstallKey);
     
    foreach (string skName in rk.GetSubKeyNames())
    {
    RegistryKey sk = rk.OpenSubKey(skName);
    try
    {
    resultat=sk.GetValue("DisplayName").ToString();
    try
    {
    resultatversion=sk.GetValue("DisplayVersion").ToString();
    }
    catch
    {
    resultatversion="";
    }
    try
    {
    Publisher=sk.GetValue("Publisher").ToString();
    }
    catch
    {
    Publisher="";
    }
    try
    {
    URLInfoAbout=sk.GetValue("URLInfoAbout").ToString();
    }
    catch
    {
    URLInfoAbout="";
    }
    try
    {
    HelpLink=sk.GetValue("HelpLink").ToString();
    }
    catch
    {
    HelpLink="";
    }
    try
    {
    InstallDate=sk.GetValue("InstallDate").ToString();
    InstallDate=InstallDate.Substring(6,2)+"/"+InstallDate.Substring(4,2)+"/"+InstallDate.Substring(0,4);
    }
    catch
    {
    InstallDate="";
    }
    }
    catch
    {
    resultat="";
    }
    if( resultat!="")
    richTextBox1.Text+=resultat+" - Version : "+resultatversion+" - Constructeur : "+Publisher+" - Site : "+URLInfoAbout+" - Aide & Support : "+HelpLink+" - Date d'installation : "+InstallDate+"\n";
    }
     
    }

  8. #8
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 754
    Points
    39 754
    Par défaut
    Regarde dans CURRENT_USER, pas LOCAL_MACHINE. Si je me souviens bien les applications ClickOnce s'installent pour l'utilisateur courant, pas pour tous les utilisateurs.

    Et commence par regarder manuellement avec regedit avant d'écrire des dizaines de lignes de code...

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 68
    Points : 39
    Points
    39
    Par défaut
    En effet, ça marche. Merci !
    J'avais lu un peu vite ton post précédent.

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 68
    Points : 39
    Points
    39
    Par défaut
    Par contre la version récupérée n'est pas la même que celle renseignée dans le menu "désinstaller un programme" du panneau de configuration.
    Je pense qu'il doit y avoir une différence de numérotation entre la version clickonce et la version de l'appli (assemblyInfo).

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

Discussions similaires

  1. [PowerShell] Connaitre la version d'une application installée
    Par Tchupacabra dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 25/06/2015, 17h25
  2. Réponses: 0
    Dernier message: 27/03/2015, 17h06
  3. Comment nommer les versions d'une application
    Par Bweb dans le forum Langages de programmation
    Réponses: 10
    Dernier message: 15/02/2013, 15h07
  4. [WD14] Récupérer le numéro de version d'une application
    Par willytito dans le forum WinDev
    Réponses: 4
    Dernier message: 23/03/2011, 15h50
  5. [SQL-SERVER] Connaitre le numero de version d'une BD
    Par Sytchev3 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 27/03/2006, 15h03

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