C# 获取电脑配置信息
对于软件绑定电脑常用到的方法汇总
public class Computer
{
public string MyProperty { get; set; }
/// <summary>
/// CPU序列号
/// </summary>
private string cpuID;
/// <summary>
/// 网卡/Mac地址
/// </summary>
private string macAddress;
/// <summary>
/// 硬盘ID
/// </summary>
private string diskID;
/// <summary>
/// IP地址
/// </summary>
private string ipAddress;
/// <summary>
/// 系统登录用户名
/// </summary>
private string loginUserName;
/// <summary>
/// 系统名称
/// </summary>
private string computerName;
/// <summary>
/// 系统型号
/// </summary>
private string systemType;
/// <summary>
/// 物理内存(单位b)
/// </summary>
private string totalPhysicalMemory;
/// <summary>
/// 系统唯一ID
/// </summary>
private string sysID;
/// <summary>
/// 主板序列号BiosID
/// </summary>
private string smBisoUUID;
private static Computer _instance;
public string CpuID
{
get
{
return cpuID;
} set
{
cpuID = value;
}
}
public string MacAddress
{
get
{
return macAddress;
} set
{
macAddress = value;
}
} public string DiskID
{
get
{
return diskID;
} set
{
diskID = value;
}
} public string IpAddress
{
get
{
return ipAddress;
} set
{
ipAddress = value;
}
} public string LoginUserName
{
get
{
return loginUserName;
} set
{
loginUserName = value;
}
} public string ComputerName
{
get
{
return computerName;
} set
{
computerName = value;
}
} public string SystemType
{
get
{
return systemType;
} set
{
systemType = value;
}
} public string TotalPhysicalMemory
{
get
{
return totalPhysicalMemory;
} set
{
totalPhysicalMemory = value;
}
} public static Computer Instance1
{
get
{
return _instance;
} set
{
_instance = value;
}
} public string SysID
{
get
{
return sysID;
} set
{
sysID = value;
}
} public string SmBisoUUID
{
get
{
return smBisoUUID;
} set
{
smBisoUUID = value;
}
} public static Computer Instance()
{
if (Instance1 == null)
Instance1 = new Computer();
return Instance1;
}
public Computer()
{
CpuID = GetCpuID();
MacAddress = GetMacAddress();
DiskID = GetDiskID();
IpAddress = GetIPAddress();
LoginUserName = GetUserName();
SystemType = GetSystemType();
TotalPhysicalMemory = GetTotalPhysicalMemory();
ComputerName = GetComputerName();
SysID = GetSysIDMethod();
SmBisoUUID = GetSmBisoUUID();
}
//获取系统唯一ID
string GetSysIDMethod()
{
try
{
string sysId = "";
Process da = new Process();
da.StartInfo.FileName = "cmd.exe";
da.StartInfo.Arguments = "/k cscript %WINDIR%\\SYSTEM32\\SLMGR.VBS /DTI";
da.StartInfo.UseShellExecute = false; //是否使用操作系统shell启动
da.StartInfo.RedirectStandardInput = true; //接受来自调用程序的输入信息
da.StartInfo.RedirectStandardOutput = true; //由调用程序获取输出信息
da.StartInfo.RedirectStandardError = true; //重定向标准错误输出
da.StartInfo.CreateNoWindow = true; //不显示程序窗口
da.Start(); //启动程序
da.StandardInput.WriteLine("exit");
string strRst = da.StandardOutput.ReadToEnd();
string[] readLine = strRst.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);
string id = readLine[].Split(':')[].Trim();
sysId = id;
return sysId;
}
catch (Exception ex)
{
string getSysIdError = Application.StartupPath + "\\SysteamLog\\GetSysIdError.log";
CheckVideoPath check = new CheckVideoPath(getSysIdError);
check.Write(ex.Message);
return "unknow";
}
}
//CPU ID
string GetCpuID()
{
try
{
//获取CPU序列号代码
string cpuInfo = "";//cpu序列号
ManagementClass mc = new ManagementClass("Win32_Processor");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
cpuInfo = mo.Properties["ProcessorId"].Value.ToString();
}
moc = null;
mc = null;
return cpuInfo;
}
catch
{
return "unknow";
}
}
//MAC地址
string GetMacAddress()
{
try
{
//获取网卡硬件地址
string mac = "";
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
if ((bool)mo["IPEnabled"] == true)
{
mac = mo["MacAddress"].ToString();
break;
}
}
moc = null;
mc = null;
return mac;
}
catch
{
return "unknow";
}
}
//网络地址
string GetIPAddress()
{
try
{
//获取IP地址
string st = "";
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
if ((bool)mo["IPEnabled"] == true)
{
//st=mo["IpAddress"].ToString();
System.Array ar;
ar = (System.Array)(mo.Properties["IpAddress"].Value);
st = ar.GetValue().ToString();
break;
} moc = null;
mc = null;
return st;
}
catch
{
return "unknow";
}
}
//硬盘ID
string GetDiskID()
{
try
{
string hdInfo = "";//硬盘序列号
ManagementObject disk = new ManagementObject("win32_logicaldisk.deviceid=\"c:\"");
hdInfo = disk.Properties["VolumeSerialNumber"].Value.ToString();
disk = null;
return hdInfo.Trim();
}
catch (Exception e)
{
return "uHnIk";
}
} /// <summary>
/// 操作系统的登录用户名
/// </summary>
/// <returns></returns>
string GetUserName()
{
try
{
string st = "";
ManagementClass mc = new ManagementClass("Win32_ComputerSystem");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
st = mo["UserName"].ToString();
}
moc = null;
mc = null;
return st;
}
catch
{
return "unknow";
}
} /// <summary>
/// PC类型
/// </summary>
/// <returns></returns>
string GetSystemType()
{
try
{
string st = "";
ManagementClass mc = new ManagementClass("Win32_ComputerSystem");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
st = mo["SystemType"].ToString();
}
moc = null;
mc = null;
return st;
}
catch
{
return "unknow";
} } /// <summary>
/// 物理内存
/// </summary>
/// <returns></returns>
string GetTotalPhysicalMemory()
{
try
{ string st = "";
ManagementClass mc = new ManagementClass("Win32_ComputerSystem");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
st = mo["TotalPhysicalMemory"].ToString();
}
moc = null;
mc = null;
return st;
}
catch
{
return "unknow";
}
}
/// <summary>
/// 系统名称
/// </summary>
/// <returns></returns>
string GetComputerName()
{
try
{
return System.Environment.GetEnvironmentVariable("ComputerName");
}
catch
{
return "unknow";
}
}
/// <summary>
/// 获取UUID
/// </summary>
/// <returns></returns>
private string GetSmBisoUUID()
{
try
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("Select * From Win32_ComputerSystemProduct");
string smBisoUUId = "";
foreach (ManagementObject mo in searcher.Get())
{
String Key = "自定义标识";
smBisoUUId = mo["UUID"].ToString().Trim().Replace("-", "");
MD5 md5 = new MD5CryptoServiceProvider();
byte[] output = md5.ComputeHash(Encoding.Default.GetBytes(smBisoUUId + Key));
smBisoUUId = BitConverter.ToString(output).Replace("-", "");//编码后的唯一UUID去掉横杠
}
return smBisoUUId;
}
catch
{
return "unknowUUID";
}
}
}
C# 获取电脑配置信息的更多相关文章
- 【转载】 Windows系统电脑通过设备管理器查看电脑配置信息
在采购电脑或者使用电脑的过程中,有时候我们需要查看到电脑的所有设备硬件信息,此时就可以通过Windows系统自带的设备管理器界面来查看该电脑所有的设备配置信息,包括CPU型号频率.内存.硬盘型号以及容 ...
- C#获取电脑硬件信息(CPU ID、主板ID、硬盘ID、BIOS编号)
最近学习过程中,想到提取系统硬件信息做一些验证,故而对网上提到的利用.NET System.Management类获取硬件信息做了进一步的学习.验证.验证是分别在4台电脑,XP SP3系统中进行,特将 ...
- C++通过GetAdapatersInfo获取网卡配置信息
DWORD GetAdaptersInfo( PIP_ADAPTER_INFO pAdapterInfo, //指向一个缓冲区,用来取得IP_ADAPTER_INFO结构列表 PULONG pOutB ...
- 检测硬件的批处理命令,检测硬件bat,一键获取电脑硬件信息
警告:运行BAT源码是一种危险的动作,如果你不熟悉,请不要尝试! 批处理语言: 简体中文 授权方式: 免费软件 运行环境: Windows平台 检测硬件批处理命令.一键获取.直接双击就可以查看 @ec ...
- 使用psutil模块获取电脑运行信息
psutil是python的一个用于获取cpu信息的模块,非常好使,以下附上官方的一些example: CPU-> Examples >>> import psutil > ...
- Java获取电脑硬件信息
package com.szht.gpy.util; import java.applet.Applet; import java.awt.Graphics; import java.io.Buffe ...
- spring利用扫描方式对bean的处理(对任何版本如何获取xml配置信息的处理)
利用扫描的方式将组件注入容器,就也可以不用操作bean来实例化对象了. 下面我做一个例子 我用的spring3.2.2版本的 首先写一个spring.xml. <?xml version=&qu ...
- windows 电脑配置信息检测
内存条 DDR4 DDR4相比DDR3最大的区别有: 1)处理器:每次内存升级换代时,必须支持的就是处理器.Haswell-E平台的内存同IVB-E/SNB-E一样为四通道设计,DDR4内存频率原生支 ...
- NHibernate获取实体配置信息(表名,列名等等)
// 注意这里有个&符号,并不是写错了,而是约定 就是这样写的ctx.GetObject("&SessionFactory") 这是官网地址http://nhfor ...
随机推荐
- python已经感觉到放弃接近的day08
居然能超过一个星期,我甚至都有点佩服我自己了,今天有两个新的知识点,一个简单一个难,先从简单的开始入手吧,进制,进制分为4种,2进制,8进制,10进制,16进制,一般最常用的就是10进制了,计算机用的 ...
- python学习——读取染色体长度(四:获取最长染色体的编号)
# 读取fasta # 解析每条序列的长度 chr_len = {'chr1':10,'chr2':20,'chr3':30,'chr4':40,'chr5':15} # 求和 total_len = ...
- 【js】js中判断对数是否为空
1.将json对象转化为json字符串,再判断该字符串是否为"{}" var data = {}; var b = (JSON.stringify(data) == "{ ...
- springboot配置SSL自签名证书
1.证书生成 每一个JDK或者JRE里都有一个工具,叫做:keytool,安装了jdk或jre之后,配置好JAVA环境之后,就可以直接在控制台使用该命令生成自签名证书: 在控制台输入: keytool ...
- gradle配置国内镜像
对单个项目生效,在项目中的build.gradle修改内容 buildscript { repositories { maven { url 'http://maven.aliyun.com/nexu ...
- Python----简单线性回归
简单线性回归 1.研究一个自变量(X)和一个因变量(y)的关系 简单线性回归模型定义:y=β0+β1x+ε 简单线性回归方程:E(y)=β0+β1x 其中: β0为回归线的截距 β1为回归线的斜率 ...
- 【转】Linux之crontab定时任务命令
1. crontab命令概念 crontab命令用于设置周期性被执行的指令.该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行. cron 系统调度进程. 可以使 ...
- C# NetStream
标题:NetStream 关注点:Read.Write 正文: int size = Read(buf, 0, buf.length); 这里一次会读入length个字节,如果小于这个数量,后面的就是 ...
- PHP开发高可用高安全App后端
基于thinkphp5开发的APP,涵盖阿里大于,七牛云图片上传,RestfulApi,短信验证, 需要联系我:QQ:1844912514
- CodeForces 1151F Sonya and Informatics
题目链接:http://codeforces.com/problemset/problem/1151/F 题目大意: 给定长度为 n 的 01 序列,可以对该序列操作 k 次,每次操作可以交换序列中任 ...