對於軟件綁定電腦常用到的方法匯總
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"; } } }