Пример #1
0
        public void DisplayPropertyAsLicenseStatus(IEnumerable <Control> controls, TextBox textBox)
        {
            Property = "LicenseStatus";
            if (!(Value is uint))
            {
                Hide(controls, textBox);
                textBox.Text = "N/A";
            }
            try
            {
                var licenseStatus       = (uint)Value;
                var licenseStatusString = LicenseMachine.LicenseStatusText(licenseStatus);

                switch (licenseStatus)
                {
                case 0:
                case 5:
                    textBox.Background = Brushes.OrangeRed;
                    break;

                case 1:
                    textBox.Background = Brushes.LightGreen;
                    break;

                default:
                    textBox.Background = Brushes.Yellow;
                    break;
                }

                Property = "LicenseStatusReason";

                if (Value != null)
                {
                    licenseStatusString += ": " + Kms.StatusMessage((uint)Value);
                }

                textBox.Text = licenseStatusString;
                Show(controls, textBox);
            }
            catch
            {
                Hide(controls, textBox);
                textBox.Text       = "N/A";
                textBox.Background = App.DefaultTextBoxBackground;
            }
        }
Пример #2
0
        public static void CheckKey(string key, string pkeyConfigFileName, out DigitalProductId2 id2, out DigitalProductId3 id3, out DigitalProductId4 id4)
        {
            var    osBuild = Environment.OSVersion.Version.Build;
            string ePidStart;

            if (osBuild >= 10000)
            {
                ePidStart = "03612";
            }
            else if (osBuild >= 9600)
            {
                ePidStart = "06401";
            }
            else if (osBuild >= 9200)
            {
                ePidStart = "05426";
            }
            else
            {
                ePidStart = "55041";
            }

            id3      = new DigitalProductId3();
            id4      = new DigitalProductId4();
            id3.size = DigitalProductId3.Size;
            id4.size = DigitalProductId4.Size;

            var hResult = PidGenX(key, pkeyConfigFileName, ePidStart, IntPtr.Zero, out id2, ref id3, ref id4);

            if (hResult != 0)
            {
                var innerException = (hResult & 0xffff0000) == 0x80070000 ? new Win32Exception(unchecked ((int)hResult)) : null;
                switch (hResult)
                {
                case 0x80070002:
                    throw new FileNotFoundException("pkeyconfig database file not found", pkeyConfigFileName, innerException);

                default:
                    throw new KmsException(Kms.StatusMessage(hResult), innerException);
                }
            }
        }