c# GPU-Z数据读取比较

xiaoxiao2021-02-28  23

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Diagnostics; using System.Threading; using System.IO; using System.Data; using System.ComponentModel; using System.Drawing; using System.Collections; using System.Web; namespace CheckGpuInfo {     class Program     {         //List<string> ConfigValues = new List<string>();         static string[] ConfigValues = { "RunProgram", "RunFile", "cardname", "biosversion", "memsize", "clockgpu", "clockmem" };         static string[] InfoValues = { "cardname", "biosversion", "memsize", "clockgpu", "clockmem" };         static int Main(string[] args)         {             if (ReadCfg("config.ini") == false)//读取配置信息             {                 string str = string.Empty;                 str = "config.ini" + "Config Open Read Error!!";                 FailInfo(str);                 return 1;             }             if (CallBath(ConfigValues[0]) == false)//执行ReadGpu.BAT             {                 string str = string.Empty;                 str = @"Run Batch File:" + ConfigValues[0] + " Error";                 FailInfo(str);                 return 1;             }             if (ReadGpuInfoKeyValues(ConfigValues[1])==false)//执行配置读取             {                 string str = string.Empty;                 str="Read Gpu Info: "+ConfigValues[1]+" Error";                 FailInfo(str);                 return 1;             }             if (FccGpuValues()==false)//数据比较             {                 string str = string.Empty;                 str = "Fcc Gpu Number Values Error";                 FailInfo(str);                 return 1;             }             //foreach (string n in InfoValues)             //{              //   Console.ForegroundColor = ConsoleColor.Yellow;               //  Console.BackgroundColor = ConsoleColor.Red;                // Console.WriteLine(n);             //}             if (WriteKeyValues() == false)             {                 return 1;             }             Console.ResetColor();             return 0;         }         static bool WriteKeyValues()         {             bool Flag = false;             string[] sstr = { @"c:\RECORD\cardname.DAT", @"c:\RECORD\biosversion.DAT", @"c:\RECORD\memsize.DAT", @"c:\RECORD\clockgpu.DAT", @"c:\RECORD\clockmem.DAT" };             int n = 0;             foreach(string nn in sstr)             {                 if (WriteValues(nn,InfoValues[n])==false)                 {                     string str = string.Empty;                     str = "Write "+nn+" Err";                     FailInfo(str);                     Flag = false;                     return Flag;                 }                 n++;             }             Flag = true;             return Flag;         }         static bool WriteValues(string FileName,string str)         {             bool Flag = false;             try             {                 FileStream fs = new FileStream(FileName,FileMode.Create,FileAccess.Write);                 StreamWriter sw = new StreamWriter(fs);                 sw.WriteLine(str);                 sw.Close();                 fs.Close();                 Flag = true;             }             catch(Exception ex)             {                 Console.WriteLine(ex.Message);                 Flag = false;                 return Flag;             }             return Flag;         }         static bool FccGpuValues()//比较数值         {             bool Flag = false;             string []sstring ={"cardname", "biosversion", "memsize", "clockgpu", "clockmem"};             for (int i = 0, n = 2; i < InfoValues.Length;i++,n++)             {                 if(i>=2)                 {                     if((Convert.ToInt32(InfoValues[i]))>=(Convert.ToInt32(ConfigValues[n])))                     {                         string str = string.Empty;                         str = sstring[i] + ":" + ConfigValues[n] + @" Pass";                         ShowTestResult(0, str);                     }                     else                     {                         string str = string.Empty;                         str = sstring[i] + ":" + ConfigValues[n] + @" Fail";                         ShowTestResult(1, str);                         Flag = false;                         return Flag;                     }                 }                 else                 {                     if(ConfigValues[n]==InfoValues[i])                     {                         string str=string.Empty;                         str = sstring[i] + ":" + ConfigValues[n] + @" Pass";                         ShowTestResult(0,str);                     }                     else                     {                         string str = string.Empty;                         str = sstring[i] + ":" + ConfigValues[n] + @" Fail";                         ShowTestResult(1, str);                         Flag = false;                         return Flag;                     }                 }             }             Flag = true;             return Flag;         }         static void ShowTestResult(int n,string str)         {             if(n==0)             {                 Console.ForegroundColor = ConsoleColor.Green;//设置字体颜色为绿色             }             else             {                 Console.ForegroundColor = ConsoleColor.Red;//设置字体颜色为红色             }             Console.WriteLine(str);             Console.ResetColor();         }         static bool ReadGpuInfoKeyValues(string InfoFileName)//读取配置数据         {             bool Flag = false;             string[] str = { "cardname", "biosversion", "memsize", "clockgpu", "clockmem" };             try             {                 FileStream fs = new FileStream(InfoFileName,FileMode.Open,FileAccess.Read);                 StreamReader sr = new StreamReader(fs,Encoding.Default);                 string Temp = string.Empty;                 while((Temp=sr.ReadLine())!=null)                 {                     string[] Array = Temp.Split(new string[]{ "<",">"},StringSplitOptions.RemoveEmptyEntries);                     if(Array.Length>2)                     {                         int n = 0;                         foreach (string i in str)                         {                             if (Array[1].Trim() == i)                             {                                 InfoValues[n] = Array[2];                                 break;                             }                             n++;                         }                     }                 }                 fs.Close();                 sr.Close();                 Flag = true;             }             catch(Exception ex)             {                 Console.WriteLine(ex.Message);                 Flag = false;                 return Flag;             }             return Flag;         }         static void FailInfo(string ShowInfo)         {             Console.ForegroundColor = ConsoleColor.Red;//设置字体颜色为红色             Console.WriteLine(ShowInfo);             Console.ResetColor();         }         static bool CallBath(string RunFileName)//调用批处理         {             string targetDir = string.Empty;             bool Flag = false;             targetDir = System.IO.Directory.GetCurrentDirectory() + @"\";             Process proc = null;             try             {                 proc = new Process();                 proc.StartInfo.WorkingDirectory = targetDir;                 proc.StartInfo.FileName = RunFileName;                 proc.Start();                 proc.WaitForExit();                 Flag = true;              }             catch (Exception ex)             {                 Console.WriteLine(ex.Message);                 Flag = false;                 return Flag;             }             foreach (string s in ConfigValues)             {                 string[] KeyValues = { "RunProgram", "cardname", "biosversion", "memsize", "clockgpu", "clockmem" };                 foreach (string s1 in KeyValues)                 {                     if (s1 == s)                     {                         string str = "Read Config.ini File " + s1 + " Key Values Err!!";                         FailInfo(str);                         Flag = false;                     }                 }             }             return Flag;         }         static bool ReadCfg(string CfgFileName)//读取配置信息         {             bool Flag = false;             string[] KeyWord={"RunProgram", "RunFile","cardname","biosversion","memsize","clockgpu","clockmem"};             FileStream fs;             StreamReader sr;             try             {                 fs = new FileStream(CfgFileName, FileMode.Open, FileAccess.Read);                 sr = new StreamReader(fs, Encoding.Default);                 string Temp = string.Empty;                 while((Temp=sr.ReadLine())!=null)                 {                     string[] Array=Temp.Split(new string[] {"="},StringSplitOptions.RemoveEmptyEntries);//截取字符串                     int v= 0;                     foreach(string K in KeyWord)                     {                         if (Array[0].Trim() == KeyWord[v]) ConfigValues[v] = Array[1].Trim();                         v++;                     }                 }                 Flag = true;                 sr.Close();                 fs.Close();             }             catch(Exception ex)             {                 Console.WriteLine(ex.Message);                 Flag = false;                 return Flag;             }             //finally             //{              //   sr.Close();               //  fs.Close();             //}             return Flag;         }     } }
转载请注明原文地址: https://www.6miu.com/read-2624766.html

最新回复(0)