title: Check which version of DirectX is installed
body: <p>As per the title, how can I check which version of DirectX a user has installed? Checking the FeatureLevel isn't enough, as my application can run on feature level 10.0, but requires that DirectX 11.1 be installed.</p>
  
  <p>Why this is not a duplicate:</p>
  
  <ul>
  <li><a href="https://stackoverflow.com/questions/6159850">How to code to get direct X version on my machine in C#?</a>
  
  <ul>
  <li>The first answer in this question says "If Windows 7, DirectX = 11, if Windows Vista, DirectX = 10". This is wrong, as Vista supports both DirectX 10 and 11 and Windows 7 supports DirectX 11 and 11.1.</li>
  <li>The second answer references a registry key which only applies to DirectX 9 and lower. Even on a Windows 7 system with DirectX 11.1 installed, this registry key will never indicate an installed version greater than 9.0c</li>
  </ul></li>
  <li><a href="https://stackoverflow.com/questions/2673928">.NET How to detect if DirectX 10 is supported?</a>
  
  <ul>
  <li>The answer to this question yet again references the same registry key for DirectX 9 and lower ONLY.</li>
  </ul></li>
  </ul>
  
  <p>I need an answer that applies to DirectX 10 installs and up. That means determining if their version is 10, 10.1, 11 or 11.1.</p>