//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. aes加密C语言

    /** * \file aes.h * * \brief AES block cipher * * Copyright (C) 2006-2010, Brainspark B.V. * * This ...

  2. 如何使用videojs兼容IE8浏览器

    需要在服务器下运行 首先我们需要下载videojs包 https://github.com/videojs/video.js/releases 这里简单写了一个小栗子 <!DOCTYPE htm ...

  3. October 16th Week 43rd Sunday 2016

    Life is not a problem to be solved, but a reality to be experienced. 人生不是待解决的难题,而是等着我们去体验的现实. Life i ...

  4. Keywords Search(hdu 2222)

    题意:给出n个单词,一篇文章,询问有几个单词在文章中出现过. /* AC自动机的裸题. 题目标号牛的一比. */ #include<cstdio> #include<cstring& ...

  5. meta标签用法总结

    注:本文并非本人撰写,摘自百度百科 meta标签用来描述一个HTML网页文档的属性,例如作者.日期和时间.网页描述.关键词.页面刷新等. 一.作用:       META标签是HTML标记HEAD区的 ...

  6. 自定义RatingBar,不同分辨率屏幕下图片拉伸或者显示不完整问题解决

    1.需要两张评分图片ic_rating_highlight.png ic_rating_normal_white.png(宽高都是52px,且有内边距)  将这两张图片添加到各分辨率文件夹下  开发过 ...

  7. EXPORT_SYMBOL的使用

    转自:http://blog.csdn.net/cailiwei712/article/details/7998525 在查看内核驱动代码的时候会经常看到在一些函数后面总会跟EXPORT_SYMBOL ...

  8. 9.JAVA中的正则表达式

    一.JAVA中的正则表达式 1.概念:以某种特定的方式描述字符串 1.Java中正则表达式的规则 ?          #{0,1}-?有一个-或者没有 \\           #表示一个" ...

  9. PCM数据格式,多少字节算一帧

    转自:http://blog.chinaunix.net/uid-9185047-id-3327302.html Somehow i remember that normally 2048 sampl ...

  10. CozyRSS开发记录5-订阅列表栏里的项

    CozyRSS开发记录5-订阅列表栏里的项 1.订阅列表栏里的项的原型图 这里列表项依然参考傲游的RSS阅读器,以后可能会微调. 2.使用ControlTemplate来定制ListBoxItem 给 ...