C#读取系统信息

1 using System;
  2 using System.Management;
  3 namespace Soyee.Comm
  4 {
  5     /// <summary>
  6     /// Computer Information
  7     /// </summary>
  8     public class Computer
  9     {
 10         public string CpuID;
 11         public string MacAddress;
 12         public string DiskID;
 13         public string IpAddress;
 14         public string LoginUserName;
 15         public string ComputerName;
 16         public string SystemType;
 17         public string TotalPhysicalMemory; //单位:M
 18         private static Computer _instance;
 19         public static Computer Instance()
 20         {
 21             if (_instance == null)
 22                 _instance = new Computer();
 23             return _instance;
 24         }
 25         protected  Computer()
 26         {
 27             CpuID=GetCpuID();
 28             MacAddress=GetMacAddress();
 29             DiskID=GetDiskID();
 30             IpAddress=GetIPAddress();
 31             LoginUserName=GetUserName();
 32             SystemType=GetSystemType();
 33             TotalPhysicalMemory=GetTotalPhysicalMemory();
 34             ComputerName=GetComputerName();
 35         }
 36         string  GetCpuID()
 37         {
 38             try
 39             {
 40                 //获取CPU序列号代码
 41                 string cpuInfo = "";//cpu序列号
 42                 ManagementClass mc = new ManagementClass("Win32_Processor");
 43                 ManagementObjectCollection moc = mc.GetInstances();
 44                 foreach(ManagementObject mo in moc)
 45                 {
 46                     cpuInfo = mo.Properties["ProcessorId"].Value.ToString();
 47                 }
 48                 moc=null;
 49                 mc=null;
 50                 return cpuInfo;
 51             }
 52             catch
 53             {
 54                 return "unknow";
 55             }
 56             finally
 57             {
 58             }
 59
 60         }
 61         string  GetMacAddress()
 62         {
 63             try
 64             {
 65                 //获取网卡硬件地址
 66                 string mac="";
 67                 ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
 68                 ManagementObjectCollection moc = mc.GetInstances();
 69                 foreach(ManagementObject mo in moc)
 70                 {
 71                     if((bool)mo["IPEnabled"] == true)
 72                     {
 73                         mac=mo["MacAddress"].ToString();
 74                         break;
 75                     }
 76                 }
 77                 moc=null;
 78                 mc=null;
 79                 return mac;
 80             }
 81             catch
 82             {
 83                 return "unknow";
 84             }
 85             finally
 86             {
 87             }
 88
 89         }
 90         string  GetIPAddress()
 91         {
 92             try
 93             {
 94                 //获取IP地址
 95                 string st="";
 96                 ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
 97                 ManagementObjectCollection moc = mc.GetInstances();
 98                 foreach(ManagementObject mo in moc)
 99                 {
100                     if((bool)mo["IPEnabled"] == true)
101                     {
102                         //st=mo["IpAddress"].ToString();
103                         System.Array ar;
104                         ar=(System.Array)(mo.Properties["IpAddress"].Value);
105                         st=ar.GetValue(0).ToString();
106                         break;
107                     }
108                 }
109                 moc=null;
110                 mc=null;
111                 return st;
112             }
113             catch
114             {
115                 return "unknow";
116             }
117             finally
118             {
119             }
120
121         }
122
123         string  GetDiskID()
124         {
125             try
126             {
127                 //获取硬盘ID
128                 String HDid="";
129                 ManagementClass mc = new ManagementClass("Win32_DiskDrive");
130                 ManagementObjectCollection moc = mc.GetInstances();
131                 foreach(ManagementObject mo in moc)
132                 {
133                     HDid = (string)mo.Properties["Model"].Value;
134                 }
135                 moc=null;
136                 mc=null;
137                 return HDid;
138             }
139             catch
140             {
141                 return "unknow";
142             }
143             finally
144             {
145             }
146
147         }
148
149         /// <summary>
150         /// 操作系统的登录用户名
151         /// </summary>
152         /// <returns></returns>
153         string  GetUserName()
154         {
155             try
156             {
157                 string st="";
158                 ManagementClass mc = new ManagementClass("Win32_ComputerSystem");
159                 ManagementObjectCollection moc = mc.GetInstances();
160                 foreach(ManagementObject mo in moc)
161                 {
162
163                     st=mo["UserName"].ToString();
164
165                 }
166                 moc=null;
167                 mc=null;
168                 return st;
169             }
170             catch
171             {
172                 return "unknow";
173             }
174             finally
175             {
176             }
177
178         }
179
180
181         /// <summary>
182         /// PC类型
183         /// </summary>
184         /// <returns></returns>
185         string  GetSystemType()
186         {
187             try
188             {
189                 string st="";
190                 ManagementClass mc = new ManagementClass("Win32_ComputerSystem");
191                 ManagementObjectCollection moc = mc.GetInstances();
192                 foreach(ManagementObject mo in moc)
193                 {
194
195                     st=mo["SystemType"].ToString();
196
197                 }
198                 moc=null;
199                 mc=null;
200                 return st;
201             }
202             catch
203             {
204                 return "unknow";
205             }
206             finally
207             {
208             }
209
210         }
211
212         /// <summary>
213         /// 物理内存
214         /// </summary>
215         /// <returns></returns>
216         string  GetTotalPhysicalMemory()
217         {
218             try
219             {
220
221                 string st="";
222                 ManagementClass mc = new ManagementClass("Win32_ComputerSystem");
223                 ManagementObjectCollection moc = mc.GetInstances();
224                 foreach(ManagementObject mo in moc)
225                 {
226
227                     st=mo["TotalPhysicalMemory"].ToString();
228
229                 }
230                 moc=null;
231                 mc=null;
232                 return st;
233             }
234             catch
235             {
236                 return "unknow";
237             }
238             finally
239             {
240             }
241         }
242         /// <summary>
243         ///
244         /// </summary>
245         /// <returns></returns>
246         string  GetComputerName()
247         {
248             try
249             {
250                 return System.Environment.GetEnvironmentVariable("ComputerName");
251             }
252             catch
253             {
254                 return "unknow";
255             }
256             finally
257             {
258             }
259         }
260
261
262     }
263 }
时间: 2024-08-28 11:36:51

C#读取系统信息的相关文章

Java:读取系统信息

com.sun.management.OperatingSystemMXBean mxbean = (com.sun.management.OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean(); System.out.println("操作系统: "+mxbean.getName()); System.out.println("CPU数量:" + mxbean.getAvailable

LTE系统信息(3)-系统信息变更

1.为什么需要加入系统信息变更机制 从<LTE系统信息(2)-SIB的周期调度>里我们已经知道,UE所需的系统信息绝大多数都包含在不同的SIB块里,分别由SIB1消息和SI消息广播到UE.携带的这些参数信息一般情况下都不会发生变化,但世事无绝对,考虑到网侧某些特定情况下可能需要对一些参数进行修改,比如修改SIB1中的RACH参数,或者修改SIB2中的ac-BarringInfo参数,因而需要增加一种机制,可以让SIB参数有变更的时候,UE能及时的获取到更新之后的系统信息.这种机制也就是本文将要

几种C#程序读取MAC地址的方法

以下是收集的几种C#程序读取MAC地址的方法,示例中是读取所有网卡的MAC地址,如果仅需要读取其中一个,稍作修改即可. 1 通过IPConfig命令读取MAC地址 ///<summary>/// 根据截取ipconfig /all命令的输出流获取网卡Mac///</summary>///<returns></returns>publicstatic List<string> GetMacByIPConfig(){  List<string&

Linux系统中的硬件问题如何排查?(4)

Linux系统中的硬件问题如何排查?(4) 2013-03-27 10:32 核子可乐译 51CTO.com 字号:T | T 在Linux系统中,对于硬件故障问题的排查可能是计算机管理领域最棘手的工作,即使是经验相当丰富的用户有时也会遇上自己搞不定的状况,本文分享一些实用的技巧与处理方法,希望有助于读者朋友理解.查明并最终搞定硬件难题. AD:2014WOT全球软件技术峰会北京站 课程视频发布 Lspci命令 要想对所有接入的硬件组件及其对应驱动程序进行扫描,这里还有一种更简单的方法.系统命令

Vbs 脚本编程简明教程之一

-为什么要使用 Vbs ? 在 Windows 中,学习计算机操作也许很简单,但是很多计算机工作是重复性劳动,例如你每周也许需要对一些计算机文件进行复制.粘贴.改名.删除,也许你每天启动 计算机第一件事情就是打开 WORD ,切换到你喜爱的输入法进行文本编辑,同时还要播放优美的音乐给工作创造一个舒心的环境,当然也有可能你经常需要对文本中的某 些数据进行整理,把各式各样的数据按照某种规则排列起来--.这些事情重复.琐碎,使人容易疲劳. 第三方软件也许可以强化计算机的某些功能,但是解决这些重复劳动往

kettle教程一

转载:http://www.cnblogs.com/limengqiang/archive/2013/01/16/KettleApply1.html ETL(Extract-Transform-Load的缩写,即数据抽取.转换.装载的过程),对于企业或行业应用来说,我们经常会遇到各种数据的处理,转换,迁移,所以了解并掌握一种etl工具的使用,必不可少,这里我介绍一个我在工作中使用了3年左右的ETL工具Kettle,本着好东西不独享的想法,跟大家分享碰撞交流一下!在使用中我感觉这个工具真的很强大,

获取进程列表及相关信息

闲着没事,看着任务管理器好玩,查资料先简单实现一下,代码中没有加入获取CPU占用率的代码,这个代码网上很多,只是不喜欢那种写法,这里就不写了.以后继续完善,对于System Process和System的信息还没法获得,那位兄弟知道可以提个醒. 代码如下 [delphi] view plaincopy unit Main; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Form

Vbs脚本经典教材

转载:http://www.cnblogs.com/BeyondTechnology/archive/2011/01/10/1932440.html Vbs脚本经典教材(最全的资料还是MSDN) -为什么要使用Vbs? 在Windows中,学习计算机操作也许很简单,但是很多计算机工作是重复性劳动,例如你每周也许需要对一些计算机文件进行复制.粘贴.改名.删除,也许你每天启动计算机第一件事情就是打开WORD,切换到你喜爱的输入法进行文本编辑,同时还要播放优美的音乐给工作创造一个舒心的环境,当然也有可

etl学习系列1——etl工具安装

ETL(Extract-Transform-Load的缩写,即数据抽取.转换.装载的过程),对于企业或行业应用来说,我们经常会遇到各种数据的处理,转换,迁移,所以了解并掌握一种etl工具的使用,必不可少,这里我介绍一个我在工作中使用了3年左右的ETL工具Kettle,本着好东西不独享的想法,跟大家分享碰撞交流一下!在使用中我感觉这个工具真的很强大,支持图形化的GUI设计界面,然后可以以工作流的形式流转,在做一些简单或复杂的数据抽取.质量检测.数据清洗.数据转换.数据过滤等方面有着比较稳定的表现,