title: Get installed software list using C#
body: <p>I try to get a list of installed application keys:</p>
  
  <pre><code>RegistryKey RegKeyUninstallList = Registry.LocalMachine;
  string strUninstallList = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall";
  string[] test = RegKeyUninstallList.OpenSubKey(strUninstallList).GetSubKeyNames();
  </code></pre>
  
  <p>I get only the Keys from:</p>
  
  <blockquote>
    <p>HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall</p>
  </blockquote>
  
  <p>But I need also the Keys from:</p>
  
  <blockquote>
    <p>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall </p>
  </blockquote>
  
  <p>My program should be able to run on a <code>64Bit</code> and on a <code>32Bit</code> machine.</p>
  
  <p>edit: Ok I have tried <a href="https://stackoverflow.com/questions/16379143/check-if-application-is-installed-in-registry">Check if application is installed in registry</a> and the solution from tHiNk_OuT_oF_bOx.</p>
  
  <p>But nothing has solved the Problem!</p>
  
  <p>The problem is i get exactly the same list for test and test2:</p>
  
  <pre><code>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();
  </code></pre>