亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C#實(shí)現(xiàn)獲取電腦硬件顯卡核心代號信息

 更新時(shí)間:2024年01月28日 09:01:37   作者:全棧小5  
這篇文章主要為大家詳細(xì)介紹了如何利用C#實(shí)現(xiàn)獲取電腦硬件顯卡核心代號信息,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

背景

在上一篇文章已經(jīng)通過C#獲取到電腦顯卡信息,在獲取顯卡核心代號信息時(shí)是空值,

因此此篇文章通過另外一種方式獲取到核心代號信息。

【驅(qū)動(dòng)系列】C#獲取電腦硬件之顯卡信息

第三方工具

GPU-Z 是一種常用的免費(fèi)工具,用于獲取和顯示計(jì)算機(jī)中顯卡(圖形處理單元,GPU)的詳細(xì)信息。它可以提供有關(guān)顯卡型號、驅(qū)動(dòng)版本、顯存大小、傳感器數(shù)據(jù)(如溫度、風(fēng)扇轉(zhuǎn)速等)以及其他相關(guān)硬件信息的實(shí)時(shí)讀數(shù)。

顯卡信息

GPU-Z 顯示有關(guān)顯卡的詳細(xì)信息,包括顯卡制造商、型號、顯存類型和大小、時(shí)鐘速度等。

傳感器監(jiān)控

它可以讀取和顯示顯卡的各種傳感器數(shù)據(jù),如溫度、負(fù)載、風(fēng)扇速度、功耗等。這些數(shù)據(jù)有助于你了解顯卡的性能和狀態(tài)。

即時(shí)讀取和更新

GPU-Z 可以實(shí)時(shí)讀取硬件信息,并在顯卡或驅(qū)動(dòng)程序更改時(shí)自動(dòng)更新。

導(dǎo)出和共享

你可以將 GPU-Z 的輸出導(dǎo)出為文本文件,方便與他人共享或保存以供后續(xù)分析。

支持多款顯卡

GPU-Z 可以識別和顯示各種顯卡品牌和型號的信息,包括 NVIDIA、AMD 和 Intel 等生產(chǎn)商的顯卡。

實(shí)現(xiàn)代碼

核心代號的獲取可能因顯卡廠商和驅(qū)動(dòng)程序的不同而有所差異。

以下是一種獲取核心代號的備選方法,它使用了GPU-Z工具的命令行版本:

1.首先,下載并安裝GPU-Z工具的命令行版本(GPU-Z CLI)。你可以從GPU-Z官方網(wǎng)站(https://www.techpowerup.com/gpuz/)上找到該工具,并確保將其路徑添加到系統(tǒng)環(huán)境變量中。

2.在C#代碼中,使用System.Diagnostics.Process類來執(zhí)行GPU-Z命令并捕獲輸出。

using System;
using System.Diagnostics;

class Program
{
    static void Main()
    {
        // 執(zhí)行GPU-Z命令行,并捕獲輸出結(jié)果
        Process process = new Process();
        ProcessStartInfo startInfo = new ProcessStartInfo()
        {
            FileName = "GPU-Z.exe", // GPU-Z命令行的路徑
            Arguments = "-dump=nogpu -txt=gpuz.txt", // 指定輸出格式為文本文件
            RedirectStandardOutput = true,
            UseShellExecute = false,
            CreateNoWindow = true
        };
        
        process.StartInfo = startInfo;
        process.Start();
        process.WaitForExit();

        // 讀取輸出文件中的核心代號
        string outputFilePath = "gpuz.txt"; // 指定輸出文件的路徑
        string[] lines = System.IO.File.ReadAllLines(outputFilePath);
        string coreName = "";

        foreach (string line in lines)
        {
            if (line.StartsWith("GPU"))
            {
                // 核心代號所在行的格式為:GPU: [核心代號]
                coreName = line.Split(':')[1].Trim();
                break;
            }
        }

        Console.WriteLine("核心代號: " + coreName);
    }
}

知識補(bǔ)充

除了上文的方法,小編還為大家整理了C#獲取計(jì)算機(jī)硬件的參數(shù)信息的相關(guān)方法,希望對大家有所幫助

下面是讀取硬件參數(shù)的代碼:

    public class OSInformation
    {
        public string OSName { get; set; }
        public string OSType { get; set; }
        public string OSSerialNumber { get; set; }
        public string ComputerName { get; set; }
        public string LogonUserName { get; set; }
    }
 
    public class HInformaiton
    {
        public string MainboardName { get; set; }
        public string MemorySize { get; set; }
        public string HarddiskSize { get; set; }
        public string VideocardName { get; set; }
        public string SoundcardName { get; set; }
        public string NetworkcardName { get; set; }
        public string ManufacturerName { get; set; }
        public string ManufactureDate { get; set; }
    }
 
    public class SInformation
    {
        public string VRV { get; set; }
        public string QAX { get; set; }
        public string WPS { get; set; }
    }
 
    public class WInformation
    {
        public string IP { get; set; }
        public string Subnetmask { get; set; }
        public string Gateway { get; set; }
    }
 
    class HardwareInformation
    {
        public static string GetJsonStr()
        {
            string ReturnStrJson = "";
            var HInfor = new HInformaiton { MainboardName ="未知", MemorySize = "未知", HarddiskSize = "未知", VideocardName = "未知", SoundcardName = "未知", NetworkcardName = "未知",ManufacturerName= "未知", ManufactureDate= "未知" };
 
            //主板信息
            try {
                ManagementObjectSearcher myMainboard = new ManagementObjectSearcher("SELECT * FROM Win32_BaseBoard");
                foreach (ManagementObject board in myMainboard.Get())
                {
                    HInfor.MainboardName = board["Product"].ToString();
                    //break;
                }
            }
            catch (Exception ex) {
                HInfor.MainboardName = "未知";
            }
 
            //內(nèi)存信息
            try {
                ManagementObjectSearcher myMemory = new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMemory");
                //定義內(nèi)存總大小變量
                double MemorySize = 0;
                foreach (ManagementObject obj in myMemory.Get())
                {
                    //將內(nèi)存大小換算成G單位
                    MemorySize += Convert.ToDouble(obj["Capacity"]) / 1024 / 1024 / 1024;
                }
                HInfor.MemorySize = MemorySize.ToString()+"G";
            } catch (ManagementException e) {
                HInfor.MemorySize = "未知";
            }
 
            //硬盤信息
            try {
                //獲取本機(jī)所有硬盤信息  
                ManagementObjectSearcher myHarddisk = new ManagementObjectSearcher("select * from Win32_DiskDrive");
                foreach (ManagementObject drive in myHarddisk.Get())
                {
                    //獲取硬盤容量
                    var capacity = (Convert.ToDouble(drive["Size"]) / 1024 / 1024 / 1024).ToString("0.00") + "G";
                    //獲取硬盤類型
                    var mediaType = drive["MediaType"];
                    HInfor.HarddiskSize = capacity.ToString() + "|" + mediaType.ToString();
                }
            }
            catch (Exception ex) {
                HInfor.HarddiskSize = "未知";
            }
 
            //顯卡信息
            try {
                ManagementObjectSearcher myVideoObject = new ManagementObjectSearcher("select * from Win32_VideoController");
                foreach (ManagementObject obj in myVideoObject.Get())
                {
                    HInfor.VideocardName = obj["Name"].ToString();
                }
            } catch (ManagementException e) {
                //e.Message
                HInfor.VideocardName = "未知";
            }
 
            //聲卡信息
            try {
                // 創(chuàng)建WMI搜索對象
                ManagementObjectSearcher mySoundcard = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_SoundDevice");
                // 遍歷搜索結(jié)果
                foreach (ManagementObject mo in mySoundcard.Get())
                {
                    // 獲取聲卡名稱
                    HInfor.SoundcardName = mo.GetPropertyValue("Name").ToString();
                }
            } catch (ManagementException e) {
                HInfor.SoundcardName = "未知";
            }
 
            //網(wǎng)卡信息(Mac地址)
            try {
 
                // 獲取本地網(wǎng)絡(luò)接口信息 
                NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces();
                foreach (NetworkInterface adapter in nics)
                {
                    // 如果是RJ45網(wǎng)卡 
                    if (adapter.NetworkInterfaceType == NetworkInterfaceType.Ethernet)
                    {
                        string S1 = (string)adapter.Description;
                        if (S1.Contains("PCI")){
                            HInfor.NetworkcardName = S1;
                        }
                    }
                }
            }
            catch (ManagementException e) {
                HInfor.NetworkcardName = "未知";
            }
 
            //獲取生產(chǎn)商和生產(chǎn)日期
            try
            {
                //獲取生產(chǎn)商
                ManagementObjectSearcher ManufacturerInfo = new ManagementObjectSearcher("select * from Win32_ComputerSystem");
                foreach (ManagementObject obj in ManufacturerInfo.Get())
                {
                    HInfor.ManufacturerName = obj["Manufacturer"].ToString();
                }
                //獲取生產(chǎn)日期
                ConnectionOptions options = new ConnectionOptions();
                ManagementScope scope = new ManagementScope("\\\\.\\root\\cimv2", options);
                ObjectQuery query = new ObjectQuery("SELECT * FROM Win32_BIOS");
                ManagementObjectSearcher BoisInfo = new ManagementObjectSearcher(scope, query);
                foreach (ManagementObject mo in BoisInfo.Get())
                {
                    string StrManufactureDate = mo["ReleaseDate"].ToString().Substring(0, 8);
                    DateTime DT = DateTime.ParseExact(StrManufactureDate, "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture);
                    HInfor.ManufactureDate = String.Format("{0:d}", DT);
                }
            }
            catch (Exception e) { 
            
            }
 
            ReturnStrJson = JsonSerializer.Serialize(HInfor);
            return ReturnStrJson;
        }
    }

需要添加引用:

using Microsoft.Win32;
using System.Management;
using System.Text.Json;
using System.Net.NetworkInformation;

調(diào)用比較簡單:

            string JsonStr;
            //硬件信息
            JsonStr = HardwareInformation.GetJsonStr();
            var ObjHardware = JsonSerializer.Deserialize<Dictionary<string, object>>(JsonStr);
            ListBox listbox1 = tabControl1.TabPages[0].Controls["listbox1"] as ListBox;
            listbox1.Items.Add("主板:"+ ObjHardware["MainboardName"]);
            listbox1.Items.Add("內(nèi)存:" + ObjHardware["MemorySize"]);
            listbox1.Items.Add("硬盤:" + ObjHardware["HarddiskSize"]);
            listbox1.Items.Add("顯卡:" + ObjHardware["VideocardName"]);
            listbox1.Items.Add("聲卡:" + ObjHardware["SoundcardName"]);
            listbox1.Items.Add("網(wǎng)卡:" + ObjHardware["NetworkcardName"]);
            listbox1.Items.Add("計(jì)算機(jī)生產(chǎn)商:" + ObjHardware["ManufacturerName"]);
            listbox1.Items.Add("計(jì)算機(jī)生產(chǎn)日期:" + ObjHardware["ManufactureDate"]);

到此這篇關(guān)于C#實(shí)現(xiàn)獲取電腦硬件顯卡核心代號信息的文章就介紹到這了,更多相關(guān)C#獲取電腦顯卡信息內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論