static Computer()
        {
            CpuName             = GetCpuName();
            IpAddress           = GetIp();
            MacAddress          = GetMacAddress();
            TotalPhysicalMemory = GetTotalPhysicalMemory();
            DisplayCard         = GetDisplayCard();
            CsdVersion          = GetCsdVersion();
            OsBit              = GetOsBit();
            Resolution         = GetVideoModeDescription();
            SystemAccountLevel = GetSystemAccountLevel();
            LanguageName       = GetLanguage();
            ComputerName       = SysHelper.ComputerName;
            OsProductName      = $"{SysHelper.OsProductName} {CsdVersion}";

            #region 检测防火墙

            //在xp中无法检测
            if (!OsProductName.ToLower().Contains("xp"))
            {
                NetFwDomain  = "0";
                NetFwPublic  = "0";
                NetFwPrivate = "0";
            }

            #endregion

            #region IsAdmin

            //var identity = WindowsIdentity.GetCurrent();
            //var principal = new WindowsPrincipal(identity);
            //AdminFlag = principal.IsInRole(WindowsBuiltInRole.Administrator) ? "1" : "0";
            AdminFlag = GetAdminFlag();

            #endregion
        }
Exemplo n.º 2
0
        public Task GetOSInfo()
        {
            return(Task.Run(() =>
            {
                //网络是否连接
                int i = 0;
                if (InternetGetConnectedState(out i, 0))
                {
                    this.Text = Language.Default.main_窗口名_在线 + " " + soft_ver;
                }
                else
                {
                    this.Text = Language.Default.main_窗口名_离线 + " " + soft_ver;
                }

                Register register = new Register(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion", Register.RegDomain.LocalMachine);

                //产品名称
                var Name = (from x in new ManagementObjectSearcher("root\\CIMV2", "SELECT Name FROM SoftwareLicensingProduct WHERE PartialProductKey <> null AND ApplicationId='55c92734-d682-4d71-983e-d6ec3f16059f'").Get().Cast <ManagementObject>() select x.GetPropertyValue("Name")).FirstOrDefault();
                string[] nameArray = Name.ToString().Split(' ');
                OsProductName = nameArray[1];

                //版本号
                string ver = register.ReadRegeditKey("BuildLabEx").ToString();
                string[] verArray = ver.Split('.');
                OsBuild = verArray[0] + "." + verArray[1];

                //描述
                var Description = (from x in new ManagementObjectSearcher("root\\CIMV2", "SELECT Description FROM SoftwareLicensingProduct WHERE PartialProductKey <> null AND ApplicationId='55c92734-d682-4d71-983e-d6ec3f16059f'").Get().Cast <ManagementObject>() select x.GetPropertyValue("Description")).FirstOrDefault();
                string[] desArray = Description.ToString().Split(' ');
                OsDescription = desArray[3];

                //许可状态
                var LicenseStatus = (from x in new ManagementObjectSearcher("root\\CIMV2", "SELECT LicenseStatus FROM SoftwareLicensingProduct WHERE PartialProductKey <> null AND ApplicationId='55c92734-d682-4d71-983e-d6ec3f16059f' AND LicenseIsAddon=False").Get().Cast <ManagementObject>() select x.GetPropertyValue("LicenseStatus")).FirstOrDefault();
                switch (LicenseStatus.ToString())
                {
                case "0":
                    {
                        ProductStatus = Language.Default.info_未授权;
                        break;
                    }

                case "1":
                    {
                        ProductStatus = Language.Default.info_已授权;
                        break;
                    }

                case "2":
                    {
                        ProductStatus = Language.Default.info_初始宽限期;
                        break;
                    }

                case "3":
                    {
                        ProductStatus = Language.Default.info_延长宽限期;
                        break;
                    }

                case "4":
                    {
                        ProductStatus = Language.Default.info_非正版宽限期;
                        break;
                    }

                case "5":
                    {
                        ProductStatus = Language.Default.info_通知状态;
                        break;
                    }

                default:
                    {
                        ProductStatus = Language.Default.info_未知;
                        break;
                    }
                }

                //SKU值
                int SKU;
                GetProductInfo(
                    Environment.OSVersion.Version.Major,
                    Environment.OSVersion.Version.Minor,
                    0,
                    0,
                    out SKU);
                sku_textBox.Text = SKU.ToString();

                //将获取的值显示到listView1
                //1.产品
                listView1.Items[0].SubItems[1].Text = OsProductName + " [" + OsBuild + "]";
                //2.类型
                if (Environment.Is64BitOperatingSystem)
                {
                    listView1.Items[1].SubItems[1].Text = "x64";
                }
                else
                {
                    listView1.Items[1].SubItems[1].Text = "x86";
                }
                //3.描述
                listView1.Items[2].SubItems[1].Text = OsDescription.ToString();
                //4.激活ID
                var ID = (from x in new ManagementObjectSearcher("root\\CIMV2", "SELECT ID FROM SoftwareLicensingProduct WHERE PartialProductKey <> null AND ApplicationId='55c92734-d682-4d71-983e-d6ec3f16059f'").Get().Cast <ManagementObject>() select x.GetPropertyValue("ID")).FirstOrDefault();
                listView1.Items[3].SubItems[1].Text = ID.ToString();
                //5.部份密钥
                var PartialProductKey = (from x in new ManagementObjectSearcher("root\\CIMV2", "SELECT PartialProductKey FROM SoftwareLicensingProduct WHERE PartialProductKey <> null AND ApplicationId='55c92734-d682-4d71-983e-d6ec3f16059f'").Get().Cast <ManagementObject>() select x.GetPropertyValue("PartialProductKey")).FirstOrDefault();
                listView1.Items[4].SubItems[1].Text = PartialProductKey.ToString();
                //6.许可状态
                listView1.Items[5].SubItems[1].Text = ProductStatus;
                //7.WindowsUpdate状态
                register.SubKey = @"SYSTEM\CurrentControlSet\Services\wuauserv";
                string WU = register.ReadRegeditKey("Start").ToString();
                switch (WU)
                {
                case "1":
                    {
                        WUStatus = Language.Default.info_WU_自动延迟;
                        break;
                    }

                case "2":
                    {
                        WUStatus = Language.Default.info_WU_自动;
                        break;
                    }

                case "3":
                    {
                        WUStatus = Language.Default.info_WU_手动;
                        break;
                    }

                case "4":
                    {
                        WUStatus = Language.Default.info_WU_禁用;
                        break;
                    }
                }
                listView1.Items[6].SubItems[1].Text = WUStatus;

                //如果KEY文本框为空,显示内置KEY
                if (key_textBox.Text == "")
                {
                    if (editionDic.ContainsKey(OsProductName.ToString()))
                    {
                        if (OsProductName == "EnterpriseS" && OsBuild.Contains("10240"))
                        {
                            key_textBox.Text = "FWN7H-PF93Q-4GGP8-M8RF3-MDWWW";
                        }
                        else if (OsProductName == "EnterpriseSN" && OsBuild.Contains("10240"))
                        {
                            key_textBox.Text = "8V8WN-3GXBH-2TCMG-XHRX3-9766K";
                        }
                        else
                        {
                            key_textBox.Text = editionDic[OsProductName.ToString()];
                        }
                    }
                    else
                    {
                        key_textBox.Text = Language.Default.提示_无KEY;
                    }
                }
            }));
        }