//C#获取当前计算机的系统信息

 //系统标识符和版本号
string strSystem = Environment.OSVersion.ToString();
//获取映射到进程上下文的物理内存量
string strRem=Environment.WorkingSet.ToString();
//获取系统启动后经过的毫秒数
int iTC=Environment.TickCount/;
//系统目录的完全限定路径
string strSD=Environment.SystemDirectory;
//获取此本地计算机的 NetBIOS 名称
string strMN=Environment.MachineName;
//获取与当前用户关联的网络域名
string strUDN=Environment.UserDomainName; -------------------------------------------------------------------------------------
//输出所有驱动器号
string[] drv=System.IO.Directory.GetLogicalDrives();
//还有文件信息,最后修改时间等等 //获取某一目录下的所有文件信息
//当前目录下的所有文件夹
DirectoryInfo di=new DirectoryInfo(strPath);
DirectoryInfo[] wjj=di.GetDirectories(); //此代码从网络收集整理
//经测试通过
//需引用System.Management
using System;
using System.Management; namespace MyCustomClassLib
{
/// <summary>
/// 硬件信息类
/// </summary>
public class HardwareInfo
{
public HardwareInfo()
{
//
// TODO: 在此处添加构造函数逻辑
//
} #region 硬件属性
/// <summary>
/// 机器名
/// </summary>
public string HostName
{
get{return System.NET.Dns.GetHostName();}
} /// <summary>
/// CPU编号
/// </summary>
public string CPUID
{
get{return GetCpuID();}
} /// <summary>
/// 硬盘编号
/// </summary>
public string HardDiskID
{
get{return GetHardDiskID();}
} /// <summary>
/// 网卡MAC
/// </summary>
public string NetMac
{
get{return GetMac();}
} #endregion #region 获取硬件信息的方法
/// <summary>
/// 获得CPU编号
/// </summary>
/// <returns></returns>
private string GetCpuID()
{
string result="";
try
{
ManagementClass mc = new ManagementClass("Win32_Processor");
ManagementObjectCollection moc = mc.GetInstances(); foreach( ManagementObject mo in moc )
{
result=mo.Properties["ProcessorId"].Value.ToString();
}
}
catch
{
return "获取CPUID失败";
}
return result;
} /// <summary>
/// 获得硬盘编号
/// </summary>
/// <returns></returns>
private string GetHardDiskID()
{
string result="";
try
{
ManagementClass mcHD=new ManagementClass("win32_logicaldisk");
ManagementObjectCollection mocHD=mcHD.GetInstances();
foreach(ManagementObject m in mocHD)
{
if(m["DeviceID"].ToString()=="C:")
{
result=m["VolumeSerialNumber"].ToString().Trim();
}
}
}
catch
{
return "获取硬盘ID失败";
}
return result;
} /// <summary>
/// 获得网卡MAC
/// </summary>
/// <returns></returns>
private string GetMac()
{
string result="";
try
{
ManagementClass mcMAC=new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection mocMAC=mcMAC.GetInstances();
foreach(ManagementObject m in mocMAC)
{
if((bool)m["IPEnabled"])
{
result=m["MacAddress"].ToString();
}
}
}
catch
{
return "获取MAC失败";
}
return result;
} #endregion
}
} //获取CPU编号:
view plaincopy to clipboardprint?
ManagementClass mc = new ManagementClass("Win32_Processor");
ManagementObjectCollection moc = mc.GetInstances();
string strID = null ;
foreach( ManagementObject mo in moc )
{
strID = mo.Properties["ProcessorId"].Value.ToString();
break;
}
textBox1.Text += "CPU ID:" + strID;
ManagementClass mc = new ManagementClass("Win32_Processor");
ManagementObjectCollection moc = mc.GetInstances();
string strID = null ;
foreach( ManagementObject mo in moc )
{
strID = mo.Properties["ProcessorId"].Value.ToString();
break;
}
textBox1.Text += "CPU ID:" + strID; //电脑1:CPU ID:BFEBFBFF00000F27 //电脑2:CPU ID:BFEBFBFF00000F27 //电脑3:CPU ID:BFEBFBFF00000F29 //电脑4:CPU ID:BFEBFBFF00000F29 //获取主板编号:
view plaincopy to clipboardprint?
ManagementClass mc = new ManagementClass("Win32_BaseBoard");
ManagementObjectCollection moc = mc.GetInstances();
string strID = null ;
foreach( ManagementObject mo in moc )
{
strID = mo.Properties["SerialNumber"].Value.ToString();
break;
}
textBox1.Text += "主板 ID:" + strID;
ManagementClass mc = new ManagementClass("Win32_BaseBoard");
ManagementObjectCollection moc = mc.GetInstances();
string strID = null ;
foreach( ManagementObject mo in moc )
{
strID = mo.Properties["SerialNumber"].Value.ToString();
break;
}
textBox1.Text += "主板 ID:" + strID; //电脑2:主板 ID:CN24401483 //电脑3:主板 ID:AZF241001101 //获取硬盘编号:
view plaincopy to clipboardprint?
ManagementClass mc = new ManagementClass("Win32_PhysicalMedia");
//网上有提到,用Win32_DiskDrive,但是用Win32_DiskDrive获得的硬盘信息中并不包含SerialNumber属性。
ManagementObjectCollection moc = mc.GetInstances();
string strID = null ;
foreach( ManagementObject mo in moc )
{
strID = mo.Properties["SerialNumber"].Value.ToString();
break;
}
textBox1.Text += "硬盘 ID:" + strID;
ManagementClass mc = new ManagementClass("Win32_PhysicalMedia");
//网上有提到,用Win32_DiskDrive,但是用Win32_DiskDrive获得的硬盘信息中并不包含SerialNumber属性。
ManagementObjectCollection moc = mc.GetInstances();
string strID = null ;
foreach( ManagementObject mo in moc )
{
strID = mo.Properties["SerialNumber"].Value.ToString();
break;
}
textBox1.Text += "硬盘 ID:" + strID; //电脑1:硬盘 ID:4833395344463658202020202020202020202020  //电脑2:硬盘 ID:WD-WMAJD1092385
//电脑3:硬盘 ID:4a353756354d5939202020202020202020202020 //电脑4:硬盘 ID:0637J2FW508014 //获取BIOS编号:
view plaincopy to clipboardprint?
ManagementClass mc = new ManagementClass("Win32_BIOS");
ManagementObjectCollection moc = mc.GetInstances();
string strID = null ;
foreach( ManagementObject mo in moc )
{
strID = mo.Properties["SerialNumber"].Value.ToString();
break;
}
textBox1.Text += "BIOS ID:" + strID;
ManagementClass mc = new ManagementClass("Win32_BIOS");
ManagementObjectCollection moc = mc.GetInstances();
string strID = null ;
foreach( ManagementObject mo in moc )
{
strID = mo.Properties["SerialNumber"].Value.ToString();
break;
}
textBox1.Text += "BIOS ID:" + strID; //电脑2:BIOS ID:CN24401483 //由以上各步看出,通过Win32_Processor获取CPUID不正确,或者说Win32_Processor字段就不包含CPU编号信息。 //通过Win32_BaseBoard获取主板信息,但不是所有的主板都有编号,或者说不是能获取所有系统主板的编号。 //通过Win32_PhysicalMedia获取硬盘编号应该没有问题。但网上说可以通过Win32_DiskDrive获取,其实所得信息根本不包含SerialNumber。 //通过Win32_BIOS获取BIOS信息,基本和获取主板信息差不多。就是说:不是所有的主板BIOS信息都有编号。 //另外,可以将通过以上各字段所得信息输出,逐个查看所有信息 属性和对应的值。代码如下: view plaincopy to clipboardprint?
ManagementClass mc = new ManagementClass("Win32_Processor");
ManagementObjectCollection moc = mc.GetInstances();
foreach( ManagementObject mo in moc )
{
textBox1.Text += "/r/n============CUP信息===========";
foreach (PropertyData pd in mo.Properties)
{
textBox1.Text += "/r/n" + pd.Name + "/t";
if (pd.Value != null)
{
textBox1.Text += pd.Value.ToString();
}
}
textBox1.Text += "/r/n/r/n=======================";
}

C# 获取计算机信息的更多相关文章

  1. 【java】 获取计算机信息及Java信息

    获取计算机名称,操作系统信息,java信息 package com.agen.test1; import java.io.BufferedReader; import java.io.InputStr ...

  2. [No0000112]ComputerInfo,C#获取计算机信息(cpu使用率,内存占用率,硬盘,网络信息)

    github地址:https://github.com/charygao/SmsComputerMonitor 软件用于实时监控当前系统资源等情况,并调用接口,当资源被超额占用时,发送警报到个人手机: ...

  3. C/C++ Windows API——获取计算机信息 转

    转自:http://blog.csdn.net/chy555chy/article 函数 头文件 作用 GetVersionEx <windows.h> 获取系统版本信息(deprecat ...

  4. vc++ windows获取计算机信息

    在软件开发中,我们经常要获当前系统的版本号,判断当前是什么系统,获取获取物理内存和可用内存大小,获取CPU名称.内核数目.主频,获取MAC地址,获取屏幕分辨率,下面的这个c++类将包含所有这些信息. ...

  5. WMI获取计算机信息

    On Error Resume NextstrComputer = "."strInfo = ""Set objWMIService = GetObject(& ...

  6. vbscript 语言通过序列和ADODB实现取号不重复

    目的:通过VBScript脚本利用序列的性质,实现取号不重复 首先,表空间中创建表名为TABLE_YEWID的表格,主要有以下几个字段 -- Create table create table TAB ...

  7. Windows开启WMI时一些总结

    通过远程的方式连接WMI获取计算机信息时,可能会出现远程主机拒绝访问,这时就要通过下面的方式来开启当前计算机的WMI服务,下面以Win7和Win10为例来进行相关的说明,通过一步步排查去连接远程服务. ...

  8. windows的cmd批处理命令及powershell (二)

    1.变量设置 for /l %%i in (1,1,100) do @echo %%i set /a i=500set /a i=%i%+200echo %i%pause ++++++++++++++ ...

  9. 多线程应用-类(thread)

    在对class thread加锁时,锁无法正常应用,函数方式没问题. 在使用class thread方法时,并发后的查询结果不对,函数方式没问题. # -*- coding: UTF-8 -*- fr ...

随机推荐

  1. 技术架构:IBatisNet

    --连接数据库框架 1        providers.config 提供配制 常用的数据库连接程序 的xml文件 2        SqlMap.xml  SQL语句执行结果和实体对象之间的映射文 ...

  2. 改写js原装的alert样式

    1.将下面的js代码单独到一个js文件中,然后在页面中引用 AlertDialog.js //改写js原装的alert样式 var t; var timeclose = 0; var showBack ...

  3. squid介绍及其简单配置

    squid的简单介绍 squid的概念 squid是一种用来缓存Internet数据的软件.接受来自人们需要下载的目标(object)的请求并适当的处理这些请求.也就是说,如果一个人想下载一web界面 ...

  4. TFS二次开发系列:三、TFS二次开发的第一个实例

    首先我们需要认识TFS二次开发的两大获取服务对象的类. 他们分别为TfsConfigurationServer和TfsTeamProjectCollection,他们的不同点在于可以获取不同的TFS ...

  5. NYOJ题目20吝啬的国度

    -----------------------------------------n-1条边的无向连通图是一棵树,又因为树上两点之间的路径是唯一的,所以解是唯一的.(注意并不一定是二叉树,所以最好采用 ...

  6. tp框架之查询

    //数据访问        //造模型对象        $nation = D("Nation");                //查询        //$a = $nat ...

  7. 微信支付JSAPI模式及退款CodeIgniter集成篇

    微信支付接口文档:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_1 首先你得知道这个jsapi是不能离开微信进行调用支付的,明白 ...

  8. 基于requests实现极客学院课程爬虫

    背景 本文主要是为了完成极客学院课程<Python 单线程爬虫>中讲师布置的实战作业. 开发环境 操作系统:windows 10 Python :Python 2.7 IDE:PyChar ...

  9. android中四大组件之间相互通信

    好久没有写有关android有关的博客了,今天主要来谈一谈android中四大组件.首先,接触android的人,都应该知道android中有四大组件,activity,service,broadca ...

  10. linux(centos)搭建SVN服务器

    安装步骤如下: 1.yum install subversion   2.输入rpm -ql subversion查看安装位置,如下图:   我们知道svn在bin目录下生成了几个二进制文件. 输入 ...