微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何编写代码以在C#中获取我的机器上的直接X版本?

参见英文答案 > Check which version of DirectX is installed                                    2个
我想知道当用户点击菜单项时,他应该能够知道他的机器上安装的直接X版本?

我想在VS2008中用C#编写代码.

我应该在菜单项点击事件中写什么?
 我是C#的初学者,所以不知道从哪里开始..

任何人都可以帮忙吗?
谢谢..

解决方法

这可能会有所帮助: .NET How to detect if DirectX 10 is supported?.

编辑:

以下是我认为的一些更好的代码.我能想到的最好的是基于Windows版本的DX10或DX11检查.这不是100%准确(因为Vista可以升级到DX11,但我没有检查这个),但总比没有好.

private int GetDirectxMajorVersion()
    {
        int directxMajorVersion = 0;

        var Osversion = Environment.Osversion;

        // if Windows Vista or later
        if (Osversion.Version.Major >= 6)
        {
            // if Windows 7 or later
            if (Osversion.Version.Major > 6 || Osversion.Version.Minor >= 1)
            {
                directxMajorVersion = 11;
            }
            // if Windows Vista
            else
            {
                directxMajorVersion = 10;
            }
        }
        // if Windows XP or earlier.
        else
        {
            using (RegistryKey key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\DirectX"))
            {
                string versionStr = key.GetValue("Version") as string;
                if (!string.IsNullOrEmpty(versionStr))
                {
                    var versionComponents = versionStr.Split('.');
                    if (versionComponents.Length > 1)
                    {
                        int directXLevel;
                        if (int.TryParse(versionComponents[1],out directXLevel))
                        {
                            directxMajorVersion = directXLevel;
                        }
                    }
                }
            }
        }

        return directxMajorVersion;
    }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐