Exemple #1
0
        } //end checkServerStatus

        private void processChecker_DoWork(object sender, DoWorkEventArgs e)
        {
            var revertResolution = (User32.DevMode)e.Argument;

            while (true)
            {
                lock (this._lockObject)
                {
                    for (var i = HookedProcIds.Count - 1; i >= 0; i--)
                    {
                        try
                        {
                            var runningProcess = Process.GetProcessById(HookedProcIds[i]);
                        }
                        catch (Exception)
                        {
                            WindowStyling.Listeners.Remove(HookedProcIds[i]);
                            HookedProcIds.RemoveAt(i);
                        }
                    }

                    if (HookedProcIds.Count == 0)
                    {
                        e.Cancel = true;
                        WindowStyling.ChangeDisplaySettings(revertResolution);
                        return;
                    }
                }
            }
        } //end processChecker_DoWork
Exemple #2
0
        private void SettingsForm_Load(object sender, EventArgs e)
        {
            this.cmbResolution.Items.AddRange(WindowStyling.GetResolutions().ToArray());

            var savedSettings = Helpers.LoadSettings();

            this.chkResize.Checked           = savedSettings.Resize;
            this.chkWindowed.Checked         = savedSettings.Windowed;
            this.chkCentre.Checked           = savedSettings.Centred;
            this.chkAutoPlay.Checked         = savedSettings.AutoPlay;
            this.chkDisableDark.Checked      = savedSettings.DisableDark;
            this.cmbResolution.SelectedIndex = this.cmbResolution.FindString(savedSettings.Resolution.ToString());

            this.txtDirectory.Text = savedSettings.ClientDirectory ?? "";

            if (this.txtDirectory.Text != string.Empty)
            {
                FindBins();

                this.cmbBin.Text = savedSettings.ClientBin;
            }
            else
            {
                this.cmbBin.SelectedIndex = 0;
            }

            if (string.IsNullOrEmpty(savedSettings.MusicType))
            {
                this.cmbMusic.SelectedIndex = 0;
            }
            else
            {
                this.cmbMusic.SelectedIndex = this.cmbMusic.FindString(savedSettings.MusicType);
            }
        }
Exemple #3
0
        private void Launch()
        {
            var settings = Helpers.LoadSettings();

            if (settings.ClientDirectory == string.Empty || settings.ClientBin == string.Empty)
            {
                MessageBox.Show(@"You must select your lineage directory under settings before continuing.",
                                @"Cannot continue!", MessageBoxButtons.OK, MessageBoxIcon.Error);

                return;
            }

            var binFile = Path.GetFileNameWithoutExtension(settings.ClientBin);

            var selectedServer = this._servers[this.cmbServer.SelectedItem.ToString()];
            var ip             = (uint)IPAddress.NetworkToHostOrder(BitConverter.ToInt32(IPAddress.Parse(selectedServer.Ip).GetAddressBytes(), 0));

            var revertResolution = new User32.DevMode();

            if (settings.Resize)
            {
                revertResolution = WindowStyling.ChangeDisplaySettings(settings.Resolution.Width, settings.Resolution.Height, 16);
            }
            else if (settings.Windowed)
            {
                revertResolution = WindowStyling.ChangeDisplayColour(16);
            }

            Lineage.Run(settings, settings.ClientBin, ip, (ushort)selectedServer.Port);

            var hookedProcId = -1;

            if (settings.Windowed)
            {
                lock (this._lockObject)
                    hookedProcId = WindowStyling.SetWindowed(binFile, HookedProcIds);
            }

            if (settings.Centred)
            {
                var windowSize = Screen.PrimaryScreen.WorkingArea;
                hookedProcId = WindowStyling.SetCentred(binFile, windowSize.Width, windowSize.Height, hookedProcId);
            }

            if (hookedProcId != -1)
            {
                lock (this._lockObject)
                    HookedProcIds.Add(hookedProcId);
            }

            if (!this.processChecker.IsBusy)
            {
                this.processChecker.RunWorkerAsync(revertResolution);
            }
        }
Exemple #4
0
 public static User32.DevMode ChangeDisplaySettings(User32.DevMode mode)
 {
     return(WindowStyling.ChangeDisplaySettings(mode.dmPelsWidth, mode.dmPelsHeight, mode.dmBitsPerPel));
 }
Exemple #5
0
 public static User32.DevMode ChangeDisplayColour(int bitCount)
 {
     return(WindowStyling.ChangeDisplaySettings(-1, -1, bitCount));
 }