Esempio n. 1
0
        private void Starter_Load(Object sender, EventArgs e)
        {
            CenterToScreen();
            LanguageImagedComboBox.DataSource = Localization.GetCultures()
                                                .Select(culture => new DropDownItem(culture.CultureName)
            {
                Image = culture.CultureImage
            }).ToList();

            ScreenImagedComboBox.DataSource = Monitors.GetMonitors()
                                              .Select(screen => new DropDownItem($"{(screen.Name.Length > 0 ? screen.Name[screen.Name.Length-1] : 'U')} {screen.Resolution.Width.ToString()}x{screen.Resolution.Height.ToString()} [{screen.Frequency.ToString()}]")
            {
                Image = Resources.monitor
            }).ToList();

            LicenceID.MaxLength  = Licence.MaxIDLength;
            LicenceKey.MaxLength = Licence.MaxKeyLength;
            LicenceID.Mask       = $@"A{String.Concat(Enumerable.Repeat("a", Licence.MaxIDLength - 1))}";
            LicenceKey.Mask      = $@"{String.Concat(Enumerable.Repeat($@"{String.Concat(Enumerable.Repeat("A", Licence.MaxKeyCharInCell))}-", Licence.MaxKeyCells))}".TrimEnd('-');

            RegistrySettings registrySettings = Registry.Registry.GetRegistry();

            if (registrySettings.DontUseRegistry || !Licence.Sha256(Settings.Version).Equals(registrySettings.BuildDateTimeHash, StringComparison.OrdinalIgnoreCase))
            {
                registrySettings = Registry.Registry.GetRegistry(true);
            }

            Int32 getLanguageIndex()
            {
                String registryCultureCode = new Localization.Culture(registrySettings.LanguageCode).CultureName;

                for (Int32 i = 0; i < LanguageImagedComboBox.Items.Count; i++)
                {
                    if (String.Equals((LanguageImagedComboBox.Items[i] as DropDownItem)?.Value,
                                      registryCultureCode, StringComparison.CurrentCultureIgnoreCase))
                    {
                        return(i);
                    }
                }
                return(0);
            }

            LicenceID.Text  = registrySettings.ID;
            LicenceKey.Text = registrySettings.Key;
            LanguageImagedComboBox.SelectedIndex = getLanguageIndex();
            ScreenImagedComboBox.SelectedIndex   = registrySettings.MonitorID < ScreenImagedComboBox.Items.Count ? registrySettings.MonitorID : 0;
            IsDisguiseRuler.Checked           = registrySettings.IsDisguise;
            NotSaveSettingsCheckBox.Checked   = registrySettings.DontUseRegistry;
            NotDisplayAnymoreCheckBox.Checked = registrySettings.DontShowAnymore;

            if (NotDisplayAnymoreCheckBox.Checked)
            {
                StartButton_Click(sender, e);
            }
            else
            {
                Show();
            }

            LicenceID.Focus();

            LanguageImagedComboBox_ChangeStarterLanguage(sender, e);
        }
Esempio n. 2
0
        private async void StartButton_Click(Object sender, EventArgs e)
        {
            async Task invalidMessage(String message)
            {
                String text = StartButton.Text;

                StartButton.BackColor          = Color.LightPink;
                StartButton.ForeColor          = Color.Black;
                StartButton.Font               = new Font(StartButton.Font, FontStyle.Bold);
                StartButton.Text               = message;
                StartButton.Enabled            = false;
                LanguageImagedComboBox.Enabled = false;
                await Task.Delay(1500).ConfigureAwait(true);

                StartButton.BackColor          = DefaultBackColor;
                StartButton.ForeColor          = DefaultForeColor;
                StartButton.Font               = new Font(StartButton.Font, FontStyle.Regular);
                StartButton.Text               = text;
                StartButton.Enabled            = true;
                LanguageImagedComboBox.Enabled = true;
            }

            if (LicenceID.Text.Length == 0)
            {
                LicenceID.Focus();
                await invalidMessage(localization.IDLabel).ConfigureAwait(true);

                return;
            }
            if (!LicenceKey.MaskFull)
            {
                LicenceKey.Focus();
                String key       = new Regex("[^0-9A-Z- ']").Replace(LicenceKey.Text, String.Empty).TrimEnd(' ', '-');
                Int32  selStart  = key.TakeWhile(c => c == ' ' || c == '-').Count();
                Int32  keyLength = key.Length - selStart;
                LicenceKey.SelectionStart  = selStart;
                LicenceKey.SelectionLength = keyLength;
                await invalidMessage(localization.KeyLabel).ConfigureAwait(true);

                return;
            }


            Licence licence = new Licence(LicenceID.Text, LicenceKey.Text);

            if (!licence.IsValid())
            {
                LicenceID.Focus();
                await invalidMessage(localization.InvalidKeyID).ConfigureAwait(true);

                return;
            }
            String languageCode = CountryData.EnglishNameByIso2.FirstOrDefault(x => x.Value == LanguageImagedComboBox.Text).Key.ToLower();

            if (!NotSaveSettingsCheckBox.Checked)
            {
                Registry.Registry.SetRegistry(new RegistrySettings(LicenceID.Text, LicenceKey.Text, languageCode, ScreenImagedComboBox.SelectedIndex,
                                                                   IsDisguiseRuler.Checked, NotSaveSettingsCheckBox.Checked, NotDisplayAnymoreCheckBox.Checked));
            }
            else
            {
                Registry.Registry.RemoveRegistry();
            }

            try
            {
                Hide();
                MainForm ruler = new MainForm(licence, Monitors.GetMonitors()[ScreenImagedComboBox.SelectedIndex],
                                              languageCode,
                                              IsDisguiseRuler.Checked);
                ruler.Closed += (s, args) => Close();
                ruler.Show();
                Dispose();
            }
            catch (ObjectDisposedException)
            {
                Close();
                Application.Exit();
            }
            catch (Exception ex)
            {
                throw new Exception(
                          $"{localization.OccurredError}\n" +
                          $"{ex.Source}\n" +
                          $"{ex.Message}\n" +
                          $"{ex.HResult}\n" +
                          $"{ex.StackTrace}");
            }
        }