Advertisement
Gov_777

CPUID

Jun 3rd, 2017
215
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.35 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Text;
  7. using System.Windows.Forms;
  8. using System.Management;
  9. using System.IO;
  10.  
  11. namespace HardwareID
  12. {
  13.     public partial class Form1 : Form
  14.     {
  15.         public Form1()
  16.         {
  17.             InitializeComponent();
  18.         }
  19.  
  20.         private string getUniqueID(string drive)
  21.         {
  22.             if (drive == string.Empty)
  23.             {
  24.                 //Find first drive
  25.                 foreach (DriveInfo compDrive in DriveInfo.GetDrives())
  26.                 {
  27.                     if (compDrive.IsReady)
  28.                     {
  29.                         drive = compDrive.RootDirectory.ToString();
  30.                         break;
  31.                     }
  32.                 }
  33.             }
  34.  
  35.             if (drive.EndsWith(":\\"))
  36.             {
  37.                 //C:\ -> C
  38.                 drive = drive.Substring(0, drive.Length - 2);
  39.             }
  40.  
  41.             string volumeSerial = getVolumeSerial(drive);
  42.             string cpuID = getCPUID();
  43.  
  44.             //Mix them up and remove some useless 0's
  45.             return cpuID.Substring(13) + cpuID.Substring(1, 4) + volumeSerial + cpuID.Substring(4, 4);
  46.         }
  47.  
  48.         private string getVolumeSerial(string drive)
  49.         {      
  50.             ManagementObject disk = new ManagementObject(@"win32_logicaldisk.deviceid=""" + drive + @":""");
  51.             disk.Get();
  52.            
  53.             string volumeSerial = disk["VolumeSerialNumber"].ToString();
  54.             disk.Dispose();
  55.  
  56.             return volumeSerial;
  57.         }
  58.  
  59.         private string getCPUID()
  60.         {
  61.             string cpuInfo = "";
  62.             ManagementClass managClass = new ManagementClass("win32_processor");
  63.             ManagementObjectCollection managCollec = managClass.GetInstances();
  64.  
  65.             foreach (ManagementObject managObj in managCollec)
  66.             {
  67.                 if (cpuInfo == "")
  68.                 {
  69.                     //Get only the first CPU's ID
  70.                     cpuInfo = managObj.Properties["processorID"].Value.ToString();
  71.                     break;
  72.                 }
  73.             }
  74.  
  75.             return cpuInfo;
  76.         }
  77.  
  78.         private void button1_Click(object sender, EventArgs e)
  79.         {
  80.             txtID.Text = getUniqueID("C");
  81.         }
  82.     }
  83. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement