对于软件绑定电脑常用到的方法汇总
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[2].Split(':')[1].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(0).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"; } } }