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; } }
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); } } }