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