C# 获取计算机信息
//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# 获取计算机信息的更多相关文章
- 【java】 获取计算机信息及Java信息
获取计算机名称,操作系统信息,java信息 package com.agen.test1; import java.io.BufferedReader; import java.io.InputStr ...
- [No0000112]ComputerInfo,C#获取计算机信息(cpu使用率,内存占用率,硬盘,网络信息)
github地址:https://github.com/charygao/SmsComputerMonitor 软件用于实时监控当前系统资源等情况,并调用接口,当资源被超额占用时,发送警报到个人手机: ...
- C/C++ Windows API——获取计算机信息 转
转自:http://blog.csdn.net/chy555chy/article 函数 头文件 作用 GetVersionEx <windows.h> 获取系统版本信息(deprecat ...
- vc++ windows获取计算机信息
在软件开发中,我们经常要获当前系统的版本号,判断当前是什么系统,获取获取物理内存和可用内存大小,获取CPU名称.内核数目.主频,获取MAC地址,获取屏幕分辨率,下面的这个c++类将包含所有这些信息. ...
- WMI获取计算机信息
On Error Resume NextstrComputer = "."strInfo = ""Set objWMIService = GetObject(& ...
- vbscript 语言通过序列和ADODB实现取号不重复
目的:通过VBScript脚本利用序列的性质,实现取号不重复 首先,表空间中创建表名为TABLE_YEWID的表格,主要有以下几个字段 -- Create table create table TAB ...
- Windows开启WMI时一些总结
通过远程的方式连接WMI获取计算机信息时,可能会出现远程主机拒绝访问,这时就要通过下面的方式来开启当前计算机的WMI服务,下面以Win7和Win10为例来进行相关的说明,通过一步步排查去连接远程服务. ...
- windows的cmd批处理命令及powershell (二)
1.变量设置 for /l %%i in (1,1,100) do @echo %%i set /a i=500set /a i=%i%+200echo %i%pause ++++++++++++++ ...
- 多线程应用-类(thread)
在对class thread加锁时,锁无法正常应用,函数方式没问题. 在使用class thread方法时,并发后的查询结果不对,函数方式没问题. # -*- coding: UTF-8 -*- fr ...
随机推荐
- java 数组中插入新的元素
class Demo1 { public static void main(String[] args) { /* 5. 有如下歌曲数组 String[] musics = new String[]{ ...
- SQL IN ANY ,(all any) 区别
EXITS 和 IN 的区别: 从效率来看: 1) select * from T1 where exists(select 1 from T2 where T1.a=T2.a) ; T1数据量小而T ...
- Android -- ActionBar上的三点菜单显示不出来问题
把Theme设置为Theme.AppCompat.Light.DarkActionBar,ActionBar上的三点菜单就是显示不出来,最终找到了一种解决办法:http://blog.csdn.net ...
- Django配置和初探
Django是python下的一款网络服务器框架. 1.安装 windos: pip install django linux: sudo pip install django 2.启动 ...
- 3.通过现有的PDB创建一个新的PDB
实验说明:创建PDB除了可以通过种子PDB创建外,现在测试通过一个现有的用户PDB克隆创建新的PDB数据库 实验步骤: 1.创建测试数据 SQL> alter session set conta ...
- WPF
最近在学习WPF,学习WPF首先上的是微软的MSDN,然后再搜索了一下网络有关WPF的学习资料.为了温故而知新把学习过程记录下来,以备后查.这篇主要讲WPF的开发基础,介绍了如何使用Visual St ...
- Java基础知识点3:集合类
集合类是Java编程中经常会用到的一类常用类库,在这里将会对整个集合类进行介绍: Collection接口: Collection接口是所有集合类的根接口,代表了所有含有多个元素的集合,无论这个集合中 ...
- XE2 泛型练习1
要引用单元 System.Generics.Collections implementation {$R *.dfm}var i: Integer; str: string; procedure TF ...
- 【转】Oracle索引列NULL值引发执行计划该表的测试示例
有时开发进行表结构设计,对表字段是否为空过于随意,出现诸如id1=id2,如果允许字段为空,因为Oracle中空值并不等于空值,有可能得到意料之外的结果.除此之外,最关键的是,NULL会影响oracl ...
- 前端性能监控方案window.performance 调研(转)
1. 业界案例 目前前端性能监控系统大致为分两类:以GA为代表的代码监控和以webpagetest为代表的工具监控. 代码监控依托于js代码并部署到需监控的页面,手动计算时间差或者使用浏览器的的API ...