/// <summary> /// Возвращает системную информацию Windows Serial Number /// </summary> /// <returns>Строка с системной информацией</returns> public static string GetInfo() { try { ManagementObjectSearcher mos = new ManagementObjectSearcher("SELECT SerialNumber FROM Win32_OperatingSystem"); ManagementObjectCollection moc = mos.Get(); System.Management.ManagementObjectCollection.ManagementObjectEnumerator oe = moc.GetEnumerator(); StringBuilder res = new StringBuilder(); foreach (ManagementObject mo in moc) { System.Management.PropertyDataCollection.PropertyDataEnumerator de = mo.Properties.GetEnumerator(); de.Reset(); while (de.MoveNext()) { object Value = mo.Properties[de.Current.Name].Value; if (Value == null) { Value = ""; } res.Append(Value); } } return(res.ToString()); } catch (Exception) { // Если выпала ошибка, то эти данные берем из реестра RegistryKey key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion"); return(key.GetValue("ProductId").ToString()); } }
/// <summary> /// 获取虚拟打印机的线程 /// </summary> static void GetVirtualPrintThread() { string wmi = "SELECT * FROM Win32_Printer"; try { System.Management.ManagementObjectCollection printers = new System.Management.ManagementObjectSearcher(wmi).Get(); foreach (System.Management.ManagementObject printer in printers) { System.Management.PropertyDataCollection.PropertyDataEnumerator pe = printer.Properties.GetEnumerator(); string printName = ""; string portName = ""; while (pe.MoveNext()) { if (pe.Current.Name == "Name") { printName = pe.Current.Value.ToString(); } else if (pe.Current.Name == "PortName") { portName = pe.Current.Value.ToString(); } } try { if (portName[portName.Length - 1] == ':') { portName = portName.Remove(portName.Length - 1); } if (portName.Length < 4) { m_virtualPrint.Add(printName); } else { if (portName.Substring(0, 3) == "LPT" || portName.Substring(0, 3) == "COM" || portName.Substring(0, 3) == "USB") { Convert.ToInt32(portName.Substring(3)); //StapleInfo.PrintList.Add(printName); continue; } m_virtualPrint.Add(printName); } } catch (Exception exce) { Console.WriteLine(exce.Message); m_virtualPrint.Add(printName); } } m_initPrint = true; } catch (Exception exce) { Console.WriteLine(exce.Message); } }