4

タイトルの通り、ユーザーがインストールした DirectX のバージョンを確認するにはどうすればよいですか? 私のアプリケーションは機能レベル 10.0 で実行できますが、DirectX 11.1 をインストールする必要があるため、FeatureLevel を確認するだけでは不十分です。

これが重複していない理由:

DirectX 10 以降のインストールに適用される回答が必要です。これは、バージョンが 10、10.1、11、または 11.1 であるかどうかを判断することを意味します。

4

2 に答える 2

3

編集:Dx <= 9でのみ機能するため、レジストリチェックメソッドを削除しました(thx @Telanor)

この方法は非常に遅いですが、100% 正確だとわかったのは 1 つだけです

private static int checkdxversion_dxdiag()
{
    Process.Start("dxdiag", "/x dxv.xml");
    while (!File.Exists("dxv.xml"))
        Thread.Sleep(1000);
    XmlDocument doc = new XmlDocument();
    doc.Load("dxv.xml");
    XmlNode dxd = doc.SelectSingleNode("//DxDiag");
    XmlNode dxv = dxd.SelectSingleNode("//DirectXVersion");

    return Convert.ToInt32(dxv.InnerText.Split(' ')[1]);
}
于 2013-06-16T09:28:36.983 に答える