using System; using System.IO; using System.Management; using System.Windows.Forms; using System.Net.NetworkInformation; namespace Launcher_Client { static class Program { [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Main()); } public static void Information(String Message, params Object[] Arguments) { String FormattedMessage = String.Format(Message, Arguments); MessageBox.Show(FormattedMessage, Properties.Settings.Default.Name, MessageBoxButtons.OK, MessageBoxIcon.Information); } public static void Error(String Message, params Object[] Arguments) { String FormattedMessage = String.Format(Message, Arguments); if (FormattedMessage.Contains(Properties.Settings.Default.Connect_IP)) { FormattedMessage = FormattedMessage.Replace(Properties.Settings.Default.Connect_IP, "IP Hidden!"); } MessageBox.Show(FormattedMessage, Properties.Settings.Default.Name, MessageBoxButtons.OK, MessageBoxIcon.Information); } public static String MacAddress() { String Address = ""; foreach (NetworkInterface Network in NetworkInterface.GetAllNetworkInterfaces()) { if (Network.OperationalStatus == OperationalStatus.Up) { Address += Network.GetPhysicalAddress().ToString(); break; } } return Address; } public static string UniqueID(string drive) { if (drive == string.Empty) { //Find first drive foreach (DriveInfo compDrive in DriveInfo.GetDrives()) { if (compDrive.IsReady) { drive = compDrive.RootDirectory.ToString(); break; } } } if (drive.EndsWith(":\\")) { //C:\ -> C drive = drive.Substring(0, drive.Length - 2); } string volumeSerial = getVolumeSerial(drive); string cpuID = getCPUID(); //Mix them up and remove some useless 0's return cpuID.Substring(13) + cpuID.Substring(1, 4) + volumeSerial + cpuID.Substring(4, 4); } private static string getVolumeSerial(string drive) { ManagementObject disk = new ManagementObject(@"win32_logicaldisk.deviceid=""" + drive + @":"""); disk.Get(); string volumeSerial = disk["VolumeSerialNumber"].ToString(); disk.Dispose(); return volumeSerial; } private static string getCPUID() { string cpuInfo = ""; ManagementClass managClass = new ManagementClass("win32_processor"); ManagementObjectCollection managCollec = managClass.GetInstances(); foreach (ManagementObject managObj in managCollec) { if (cpuInfo == "") { //Get only the first CPU's ID cpuInfo = managObj.Properties["processorID"].Value.ToString(); break; } } return cpuInfo; } public static String ProcessorID() { ManagementClass Management = new ManagementClass("win32_processor"); ManagementObjectCollection ManagementCollection = Management.GetInstances(); foreach (var Object in ManagementCollection) { return Convert.ToString(Object.Properties["processorID"].Value); } return null; } } }