Obter lista de software instalado usando C #

Eu tento obter uma lista de chaves de aplicativos instaladas:

RegistryKey RegKeyUninstallList = Registry.LocalMachine;
string strUninstallList = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall";
string[] test = RegKeyUninstallList.OpenSubKey(strUninstallList).GetSubKeyNames();

Recebo apenas as chaves de:

HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ Windows \ CurrentVersion \ Desinstalar

Mas também preciso das chaves de:

HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Desinstalar

Meu programa deve ser capaz de executar em um64Bit e em um32Bit máquina.

edit: Ok, eu tenteiVerifique se o aplicativo está instalado no registro e a solução de tHiNk_OuT_oF_bOx.

Mas nada resolveu o problema!

O problema é que recebo exatamente a mesma lista para teste e teste2:

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();

questionAnswers(4)

yourAnswerToTheQuestion