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 ...
随机推荐
- CentOS7.x安装cobbler无人值守安装系统
CentOS7.x cobbler无人值守安装 cobbler介绍 自打若干年前 Red Hat,推出了 Kickstart,不再需要刻了光盘一台一台地安装 Linux,只要搞定 PXE.DHCP.T ...
- Hive JDBC:java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException): User: root is not allowed to impersonate anonymous
今天使用JDBC来操作Hive时,首先启动了hive远程服务模式:hiveserver2 &(表示后台运行),然后到eclipse中运行程序时出现错误: java.sql.SQLExcepti ...
- Scrum Meeting 博客
笨拙软件工程 Scrum Meeting 博客汇总 一.Alpha阶段 [alpha阶段]第一次Scrum Meeting [alpha阶段]第二次Scrum Meeting [alpha阶段]第三次 ...
- Android 1.7 中不支持 lambda 表达式
Error:(129, 32) 错误: -source 1.7 中不支持 lambda 表达式 (请使用 -source 8 或更高版本以启用 lambda 表达式) lambda expressio ...
- flask 利用flask_wtf扩展 创建web表单
在Flask中,为了处理web表单,我们一般使用Flask-WTF扩展,它封装了WTForms,并且它有验证表单数据的功能 创建语句格式: startTime = DateTimeField('计划开 ...
- cocos 动画系统
前面的话 cocos 动画系统支持任意组件属性和用户自定义属性的驱动,再加上可任意编辑的时间曲线和移动轨迹编辑功能,就可以制作出各种动态效果 概述 Animation 组件可以以动画方式驱动所在节点和 ...
- 启动django时报错Watching for file changes with StatReloader(使用状态加载程序监视文件更改 )
原因:可能是Django版本和Python版本或者PyMysql版本不一致 解决:升级或者降级Django版本 命令如下: pip install django==2.1.7 #django==版本号 ...
- Windows安装MongoDB 4.0并赋予用户访问权限
第一部分 Windows安装MongoDB-4.0 第一步:下载MongoDB:https://www.mongodb.com/download-center?jmp=nav#community 我目 ...
- 执行Git命令时出现各种 SSL certificate problem 的解决办法
执行Git命令时出现各种 SSL certificate problem 的解决办法 来源 https://www.cnblogs.com/chenzc/p/5842932.html 比如我在win ...
- html-webpack-plugin不输出script标签的方法
那就是修改源码 约550行: if (!this.options.disableScript) { if (this.options.inject === 'head') { head = head. ...