架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

搜索
查看: 23503|回复: 1

[资料] c#获取系统信息,包括操作系统内存使用等

[复制链接]
发表于 2016-5-8 22:00:48 | 显示全部楼层 |阅读模式
  1. using Microsoft.VisualBasic.Devices;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Diagnostics;
  5. using System.Management;
  6. using System.Text;

  7. namespace GameLoginSu
  8. {
  9.     public class ComputerMsgGet
  10.     {
  11.         private static bool IsWindows2003
  12.         {
  13.             get
  14.             {
  15.                 if (Environment.OSVersion.Platform != PlatformID.Win32NT || Environment.OSVersion.Version.Major != 5)
  16.                 {
  17.                     return false;
  18.                 }
  19.                 return Environment.OSVersion.Version.Minor == 2;
  20.             }
  21.         }

  22.         private static bool IsWindows7
  23.         {
  24.             get
  25.             {
  26.                 if (Environment.OSVersion.Platform != PlatformID.Win32NT || Environment.OSVersion.Version.Major != 6)
  27.                 {
  28.                     return false;
  29.                 }
  30.                 return Environment.OSVersion.Version.Minor == 1;
  31.             }
  32.         }

  33.         private static bool IsWindowsVista
  34.         {
  35.             get
  36.             {
  37.                 if (Environment.OSVersion.Platform != PlatformID.Win32NT || Environment.OSVersion.Version.Major != 6)
  38.                 {
  39.                     return false;
  40.                 }
  41.                 return Environment.OSVersion.Version.Minor == 0;
  42.             }
  43.         }

  44.         private static bool IsWindowsXP
  45.         {
  46.             get
  47.             {
  48.                 if (Environment.OSVersion.Platform != PlatformID.Win32NT || Environment.OSVersion.Version.Major != 5)
  49.                 {
  50.                     return false;
  51.                 }
  52.                 return Environment.OSVersion.Version.Minor == 1;
  53.             }
  54.         }

  55.         public ComputerMsgGet()
  56.         {
  57.         }

  58.         public static string GetBaseBoard()
  59.         {
  60.             try
  61.             {
  62.                 List<string> strs = new List<string>();
  63.                 ManagementObjectSearcher managementObjectSearcher = new ManagementObjectSearcher("SELECT * FROM Win32_BaseBoard");
  64.                 string str = null;
  65.                 foreach (ManagementObject managementObject in managementObjectSearcher.Get())
  66.                 {
  67.                     str = managementObject["SerialNumber"].ToString().Trim();
  68.                     if (string.IsNullOrEmpty(str))
  69.                     {
  70.                         continue;
  71.                     }
  72.                     strs.Add(str);
  73.                 }
  74.                 if (strs.Count > 0)
  75.                 {
  76.                     strs.Sort();
  77.                     return strs[0];
  78.                 }
  79.             }
  80.             catch
  81.             {
  82.             }
  83.             return "";
  84.         }

  85.         public static string GetComputerNames()
  86.         {
  87.             string machineName;
  88.             try
  89.             {
  90.                 machineName = Environment.MachineName;
  91.             }
  92.             catch (Exception exception)
  93.             {
  94.                 machineName = "获取失败";
  95.             }
  96.             return machineName;
  97.         }

  98.         public static string GetConputerProList(List<string> Ls1, List<string> Ls2)
  99.         {
  100.             string str = "";
  101.             Process[] processes = Process.GetProcesses();
  102.             for (int i = 0; i < (int)processes.Length; i++)
  103.             {
  104.                 Process process = processes[i];
  105.                 try
  106.                 {
  107.                     string processName = process.ProcessName;
  108.                     if (!Ls1.Contains(processName) && !Ls2.Contains(processName))
  109.                     {
  110.                         str = (str != "" ? string.Concat(str, "\n", processName) : processName);
  111.                     }
  112.                 }
  113.                 catch (Exception exception)
  114.                 {
  115.                 }
  116.             }
  117.             return str;
  118.         }

  119.         public static string GetCpuMsg()
  120.         {
  121.             string str = null;
  122.             try
  123.             {
  124.                 using (ManagementObjectCollection.ManagementObjectEnumerator enumerator = (new ManagementObjectSearcher("SELECT * FROM Win32_Processor")).Get().GetEnumerator())
  125.                 {
  126.                     if (enumerator.MoveNext())
  127.                     {
  128.                         str = ((ManagementObject)enumerator.Current)["Name"].ToString();
  129.                     }
  130.                 }
  131.             }
  132.             catch (Exception exception)
  133.             {
  134.             }
  135.             if (str != null)
  136.             {
  137.                 return str;
  138.             }
  139.             return "获取失败";
  140.         }

  141.         public static string GetDiskSerialNumber()
  142.         {
  143.             string str;
  144.             try
  145.             {
  146.                 ManagementObjectSearcher managementObjectSearcher = new ManagementObjectSearcher();
  147.                 string[] strArrays = new string[] { "PNPDeviceID", "Signature" };
  148.                 managementObjectSearcher.Query = new SelectQuery("Win32_DiskDrive", "", strArrays);
  149.                 ManagementObjectCollection.ManagementObjectEnumerator enumerator = managementObjectSearcher.Get().GetEnumerator();
  150.                 enumerator.MoveNext();
  151.                 ManagementBaseObject current = enumerator.Current;
  152.                 string str1 = current.Properties["signature"].Value.ToString().Trim();
  153.                 str = str1;
  154.             }
  155.             catch (Exception exception)
  156.             {
  157.                 str = "";
  158.             }
  159.             return str;
  160.         }

  161.         public static string GetMainBoardInfo()
  162.         {
  163.             string str;
  164.             try
  165.             {
  166.                 using (ManagementObjectSearcher managementObjectSearcher = new ManagementObjectSearcher("SELECT * FROM Win32_BaseBoard"))
  167.                 {
  168.                     StringBuilder stringBuilder = new StringBuilder();
  169.                     foreach (ManagementObject managementObject in managementObjectSearcher.Get())
  170.                     {
  171.                         stringBuilder.Append(managementObject["Manufacturer"]).Append(";").Append(managementObject["Product"]).Append(";").Append(managementObject["SerialNumber"]);
  172.                     }
  173.                     str = stringBuilder.ToString();
  174.                 }
  175.             }
  176.             catch (Exception exception)
  177.             {
  178.                 str = "";
  179.             }
  180.             return str;
  181.         }

  182.         public static string GetMemoryMsg()
  183.         {
  184.             string str;
  185.             try
  186.             {
  187.                 Computer computer = new Computer();
  188.                 ulong totalPhysicalMemory = computer.Info.TotalPhysicalMemory / (long)1024 / (long)1024 / (long)1024;
  189.                 string str1 = totalPhysicalMemory.ToString("0.0");
  190.                 ulong availablePhysicalMemory = computer.Info.AvailablePhysicalMemory / (long)1024 / (long)1024 / (long)1024;
  191.                 string str2 = availablePhysicalMemory.ToString("0.0");
  192.                 str = string.Concat(str1, "GB / ", str2, "GB");
  193.             }
  194.             catch (Exception exception)
  195.             {
  196.                 str = "获取失败";
  197.             }
  198.             return str;
  199.         }

  200.         public static bool GetSystemISxp()
  201.         {
  202.             bool flag;
  203.             try
  204.             {
  205.                 if (Environment.OSVersion.Version.CompareTo(new Version("6.2")) >= 0)
  206.                 {
  207.                     flag = false;
  208.                 }
  209.                 else if (ComputerMsgGet.IsWindows7)
  210.                 {
  211.                     flag = false;
  212.                 }
  213.                 else if (ComputerMsgGet.IsWindowsXP)
  214.                 {
  215.                     flag = true;
  216.                 }
  217.                 else if (ComputerMsgGet.IsWindows2003)
  218.                 {
  219.                     flag = true;
  220.                 }
  221.                 else if (!ComputerMsgGet.IsWindowsVista)
  222.                 {
  223.                     return false;
  224.                 }
  225.                 else
  226.                 {
  227.                     flag = false;
  228.                 }
  229.             }
  230.             catch (Exception exception)
  231.             {
  232.                 return false;
  233.             }
  234.             return flag;
  235.         }

  236.         public static string GetSystemName()
  237.         {
  238.             if (ComputerMsgGet.IsWindows7)
  239.             {
  240.                 return "Win7";
  241.             }
  242.             if (ComputerMsgGet.IsWindowsXP)
  243.             {
  244.                 return "XP";
  245.             }
  246.             if (ComputerMsgGet.IsWindows2003)
  247.             {
  248.                 return "Win2003";
  249.             }
  250.             if (ComputerMsgGet.IsWindowsVista)
  251.             {
  252.                 return "Vista";
  253.             }
  254.             return "获取失败";
  255.         }

  256.         public static int OSBit()
  257.         {
  258.             int num;
  259.             try
  260.             {
  261.                 ManagementScope managementScope = new ManagementScope("\\\\localhost", new ConnectionOptions());
  262.                 ManagementObjectSearcher managementObjectSearcher = new ManagementObjectSearcher(managementScope, new ObjectQuery("select AddressWidth from Win32_Processor"));
  263.                 string str = null;
  264.                 using (ManagementObjectCollection.ManagementObjectEnumerator enumerator = managementObjectSearcher.Get().GetEnumerator())
  265.                 {
  266.                     if (enumerator.MoveNext())
  267.                     {
  268.                         str = ((ManagementObject)enumerator.Current)["AddressWidth"].ToString();
  269.                     }
  270.                 }
  271.                 num = int.Parse(str);
  272.             }
  273.             catch
  274.             {
  275.                 num = -1;
  276.             }
  277.             return num;
  278.         }
  279.     }
  280. }
复制代码






上一篇:asp.net MVC4 IIS7.5 403.14错误的解决办法
下一篇:Win2003 IIS浏览ASP提示无法找到该页的解决办法
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2017-8-10 06:21:39 | 显示全部楼层
好牛逼呀,这样也行呀
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2026-5-28 10:05

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表