Obtenir la liste des logiciels déjà installés à l'aide de C#
J'essaie d'obtenir une liste de l'application installée clés:
RegistryKey RegKeyUninstallList = Registry.LocalMachine;
string strUninstallList = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall";
string[] test = RegKeyUninstallList.OpenSubKey(strUninstallList).GetSubKeyNames();
Je ne reçois que des Clés à partir de:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall
Mais j'ai besoin aussi des Clés à partir de:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
Mon programme doit être capable de s'exécuter sur un 64Bit
et sur un 32Bit
machine.
edit: Ok j'ai essayé Vérifiez si l'application est installée dans le registre et la solution de tHiNk_OuT_oF_bOx.
Mais rien n'a résolu le Problème!
Le problème est que j'obtiens exactement la même liste pour le test et test2:
RegistryKey RegKeyUninstallList = Registry.LocalMachine;
string strUninstallList = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall";
string strUninstallList2 = @"SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall";
string[] test = RegKeyUninstallList.OpenSubKey(strUninstallList).GetSubKeyNames();
string[] test2 = RegKeyUninstallList.OpenSubKey(strUninstallList2).GetSubKeyNames();
Ne devriez-vous pas utiliser WMI à la place? technet.microsoft.com/en-us/library/ee156540.aspx
OriginalL'auteur user3523585 | 2014-07-23
Vous devez vous connecter pour publier un commentaire.
Source : http://social.msdn.microsoft.com/Forums/en-US/94c2f14d-c45e-4b55-9ba0-eb091bac1035/c-get-installed-programs
La solution est à la recherche de 3 places dans le registre:
le code ci-dessous qui convient à vos besoins.
Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Wow6432Node...")
. UtilisationRegistryKey.OpenBaseKey(RegistryHive.LocalMachine, is64bit ? RegistryView.Registry64 : RegistryView.Registry32);
à la place 😉Ça ne fonctionne pas, j'obtiens exactement la même Liste
merci à vous, il fonctionne avec `RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, is 64bit ? RegistryView.Registry64 : RegistryView.Registry32)
Registre demandé l'accès non autorisé 🙁 toute solution s'il vous plaît ?
lorsque nous utilisons votre code de montrer les exceptions à la sécurité
OriginalL'auteur tHiNk_OuT_oF_bOx
Pouvez-vous essayer d'ajouter la mention "le Système de."Gestion de votre projet et après l'utilisation de ce code:
Je pense plus facile
OriginalL'auteur Mehdi Bugnard
using Microsoft.VisualBasic;
??juste faire en vb.net et converti en c# c'est pourquoi
OriginalL'auteur Suji
Il semble que vous devez maintenant utiliser OpenBaseKey, il y a le code im en utilisant:
OriginalL'auteur EKS