对于软件绑定电脑常用到的方法汇总

 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# 获取电脑配置信息的更多相关文章

  1. 【转载】 Windows系统电脑通过设备管理器查看电脑配置信息

    在采购电脑或者使用电脑的过程中,有时候我们需要查看到电脑的所有设备硬件信息,此时就可以通过Windows系统自带的设备管理器界面来查看该电脑所有的设备配置信息,包括CPU型号频率.内存.硬盘型号以及容 ...

  2. C#获取电脑硬件信息(CPU ID、主板ID、硬盘ID、BIOS编号)

    最近学习过程中,想到提取系统硬件信息做一些验证,故而对网上提到的利用.NET System.Management类获取硬件信息做了进一步的学习.验证.验证是分别在4台电脑,XP SP3系统中进行,特将 ...

  3. C++通过GetAdapatersInfo获取网卡配置信息

    DWORD GetAdaptersInfo( PIP_ADAPTER_INFO pAdapterInfo, //指向一个缓冲区,用来取得IP_ADAPTER_INFO结构列表 PULONG pOutB ...

  4. 检测硬件的批处理命令,检测硬件bat,一键获取电脑硬件信息

    警告:运行BAT源码是一种危险的动作,如果你不熟悉,请不要尝试! 批处理语言: 简体中文 授权方式: 免费软件 运行环境: Windows平台 检测硬件批处理命令.一键获取.直接双击就可以查看 @ec ...

  5. 使用psutil模块获取电脑运行信息

    psutil是python的一个用于获取cpu信息的模块,非常好使,以下附上官方的一些example: CPU-> Examples >>> import psutil > ...

  6. Java获取电脑硬件信息

    package com.szht.gpy.util; import java.applet.Applet; import java.awt.Graphics; import java.io.Buffe ...

  7. spring利用扫描方式对bean的处理(对任何版本如何获取xml配置信息的处理)

    利用扫描的方式将组件注入容器,就也可以不用操作bean来实例化对象了. 下面我做一个例子 我用的spring3.2.2版本的 首先写一个spring.xml. <?xml version=&qu ...

  8. windows 电脑配置信息检测

    内存条 DDR4 DDR4相比DDR3最大的区别有: 1)处理器:每次内存升级换代时,必须支持的就是处理器.Haswell-E平台的内存同IVB-E/SNB-E一样为四通道设计,DDR4内存频率原生支 ...

  9. NHibernate获取实体配置信息(表名,列名等等)

    // 注意这里有个&符号,并不是写错了,而是约定 就是这样写的ctx.GetObject("&SessionFactory") 这是官网地址http://nhfor ...

随机推荐

  1. 如何配置jenkins 与代理服务器吗?

    0       我们面临一些问题使用代理服务器(即缓存服务器)和詹金斯是希望有人可以提供如果他们有类似的设置.    Herea€™年代简要描述的设置: 在主站点反向代理,JTS & CCM服 ...

  2. Ubuntu 14.04 下使用微软的跨平台轻量级开发神器 Visual Studio Code

    因为 Visual Studio Code 不断更新,官方最新 v1.32 的 .deb 包已经不能用于 Ubuntu 14.04 直接安装了. 下载 v1.31 的 deb 包安装即可:https: ...

  3. 利用ELK分析Nginx日志生产实战(高清多图)

    本文以api.mingongge.com.cn域名为测试对象进行统计,日志为crm.mingongge.com.cn和risk.mingongge.com.cn请求之和(此二者域名不具生产换环境统计意 ...

  4. jeecg入门操作—字典配置

    一.字典入口 系统 管理->数据字典 二.录入字典 填写字典相关信息 三 .添加字典内容 填写字典某条记录内容 再录入几条 录入之后的字典内容 四.使用字典 1.编辑用户表单,添加用户等级字段 ...

  5. EXT 设置编辑框为只读

    Ext.getCmp("processResult").setReadOnly(ture);   //processResult是属性的id,setReadOnly(ture)设置 ...

  6. WMI Explorer操作 和 powershell命令

    powershell查看wmi root 空间 PS C:\Users\yyy> Get-WmiObject -Class __namespace -Namespace root | selec ...

  7. deeplearing4j学习以及踩过的坑

    1. 添加dl4j后, run项目时, 一直run不起来, run按钮绿色但是点击没反应.   查看日志后发现: 是classpath太长导致的. 在本项目的.idea文件夹,找到文件夹中的works ...

  8. 解决使用Spring Boot、Multipartfile实现上传提示无法找到文件的问题

    前言 SpringBoot使用MultiPartFile接收来自表单的file文件,然后进行服务器的上传是一个项目最基本的需求,我以前的项目都是基于SpringMVC框架搭建的,所以在使用Spring ...

  9. Java 异常体系(美团面试)

    Java把异常作为一种类,当做对象来处理.所有异常类的基类是Throwable类,两大子类分别是Error和Exception. 系统错误由Java虚拟机抛出,用Error类表示.Error类描述的是 ...

  10. PHP7中的数据类型

    PHP中变量名→zval,变量值→zend_value.其变量内存是通过引用计数管理的,在PHP7中引用计数在value结构中. 变量类型: 头文件在PHP源码 /zend/zend_types.h ...