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

 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. 移动端键盘密码输入框插件(jquery用于支付密码)

    最后生成样子: 配置值: * back {function} 回调函数 * msghtml {html} 自定义的html * title {string|object} 标题 * {txt:标题,b ...

  2. C++11のlambd表达式

    在其他语言中,我们常见lambda表达式,c++11中也引入了. 利用Lambda表达式,可以方便的定义和创建匿名函数.今天,我们就来简单介绍一下C++中Lambda表达式的简单使用. 一.lambd ...

  3. dig请求和回应中的参数解释

    ; <<>> DiG 9.9.5-3ubuntu0.6-Ubuntu <<>> baidu.com dig这个程序的版本号和要查询的域名 ;; glob ...

  4. LinkedList类 和ArrayList类

    1)LinkedList类  LinkedList实现了List接口,允许null元素.此外LinkedList提供额外的get,remove,insert方法在 LinkedList的首部或尾部.这 ...

  5. 015_python原生在线调试工具

    一.pdb https://docs.python.org/3/library/pdb.html

  6. 最新版jQuery v3.3.1的BUG以及解决办法(什么问题不重要,怎么解决问题才重要)

    发现问题 最新版的 FineUIPro v5.2.0 中,我们将内置的 jQuery v1.12.4 升级到 jQuery v3.3.1 ,可以看升级记录: +升级到jQuery v3.3.1.    ...

  7. 随心测试_软测基础_008<测试对象整体认识>

    关于:软件测试的整体认识,首先:认识:测试 对象     与  测试主体(人) 之间的关系 核心理解如下: 不同的测试对象,选取 不同的测试方法 软件项目的周期中:提出 需求 ——>软件实现—— ...

  8. PHP将汉字转为拼音

    没什么难度,最大的难点应该是需要有一个汉字-拼音库. <?php function spell($str, $ishead=0){ $restr = ''; $str = trim($str); ...

  9. ansible 模块

    1. #vim /etc/ansible/yaml/back.yml - hosts: siyi tasks: - name: "yum rsync" yum: name=rsyn ...

  10. OpenCV4.1.0实践(3) - 图片缩放

    简单的案例: (1)通过比例进行缩放 import cv2 as cv import numpy as np # 图片缩放 img = cv.imread('images/animal.jpg', f ...