Liste des programmes installés sur une machine [Résolu]

Signaler
Messages postés
48
Date d'inscription
mercredi 22 juin 2005
Statut
Membre
Dernière intervention
7 mars 2007
-
Messages postés
10
Date d'inscription
lundi 24 novembre 2008
Statut
Membre
Dernière intervention
26 octobre 2010
-
Salut,
J'aimerais savoir comment on peut faire pour connaître la liste des programmes installés sur une machine par programmation...
Il y a ue fonction pour ??? une API peut être ???
Si quelqu'un peut m'aider....

DyskO =>> blackfamilyinc.free.fr !

7 réponses

Messages postés
48
Date d'inscription
mercredi 22 juin 2005
Statut
Membre
Dernière intervention
7 mars 2007

En fait la il liste seulement une partie des programmes....
J'ai trouvé la solution....
Tout est dans HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\
Enfin je crois....
Et pour le WMI j'ai trouvé aucune fonction qui le fait, a part WIN32_Product mais la encore c'es pas complet....
Bref pour ceux qui cherchent la solution, voici la mienne :



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";


}


}



Il y à juste à appeler la fonction et elle renvoie dans un RichTextBox le nom, la version etc des programmes installés ..

Qui à mieux ???

DyskO =>> blackfamilyinc.free.fr !
Messages postés
341
Date d'inscription
mercredi 8 juin 2005
Statut
Membre
Dernière intervention
10 février 2009
2
Messages postés
341
Date d'inscription
mercredi 8 juin 2005
Statut
Membre
Dernière intervention
10 février 2009
2
Salut,

En effet la classe Win32_product n'est pas complète, elle ne fournit
que les soft installés via un fichier d'install en msi. La clé
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\

fournit les mêmes données.

En fait tu as seulement les soft qui sont dans le panneau de config.
Messages postés
6
Date d'inscription
dimanche 8 février 2004
Statut
Membre
Dernière intervention
30 janvier 2007

en fait il a raison pr la liste de soft sur une machine
sinon si tu v le code qui utilise le WMI avec la classe Win32_product
string scropestring=string.Format(@"\\{0}\root\cimv2",computerName);
System.Management.ManagementScope Scope= new ManagementScope(scopestring);
SelectQuery query = new SelectQuery("Select * from Win32_Product");
ManagementObjectSearcher myList = new
ManagementObjectSearcher(Scope,query);
foreach(ManagementObject myObj in myList.get())
{
Console.WriteLine(myObj.GetText(TextFormat.Mof));
}
Messages postés
6
Date d'inscription
dimanche 8 février 2004
Statut
Membre
Dernière intervention
30 janvier 2007

salut j'ai un probleme avec les methodes Install et Uninstall de Win32_product
j'arrives pas a installé ni a desinstalle une application.
SUr ce j'ai besoin d'aide surtout en C#dotnet.
Messages postés
48
Date d'inscription
mercredi 22 juin 2005
Statut
Membre
Dernière intervention
7 mars 2007

Solodo,
Regarde les post un peu plus haut et tu verras qu'on avait déja trouvé Win32_Product...
Mais cette classe ne te renseigne que partiellement
Bref la soluc est la BDR...

DyskO =>> blackfamilyinc.free.fr !
Messages postés
10
Date d'inscription
lundi 24 novembre 2008
Statut
Membre
Dernière intervention
26 octobre 2010

tres interressnt ce codes! deja la petite liste me suffit

Bonne année à tous! tresorunikin_2009