예제 #1
0
        /// <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());
            }
        }
예제 #2
0
        /// <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);
            }
        }