Пример #1
0
        } //end btnCheck_Click

        private void tmrCheckProcess_Tick(object sender, EventArgs e)
        {
            var revertResolution = this._revertResolution;

            lock (this._lockObject)
            {
                for (var i = Clients.Count - 1; i >= 0; i--)
                {
                    try
                    {
                        var runningProcess = Process.GetProcessById(Clients[i].Process.Id);
                    }
                    catch (Exception)
                    {
                        Clients[i].ProxyServer.Stop();
                        User32.UnhookWindowsHookEx(Clients[i].Process.MainWindowHandle);
                        Clients.RemoveAt(i);
                    }
                }

                if (Clients.Count == 0)
                {
                    this.tmrCheckProcess.Enabled = false;
                    LineageClient.ChangeDisplaySettings(revertResolution);
                    tmrCheckProcess.Stop();
                    tmrProxyStatus.Stop();
                }
            }
        }
Пример #2
0
        } //end btnCheck_Click

        private void tmrCheckProcess_Tick(object sender, EventArgs e)
        {
            var revertResolution = this._revertResolution;
            var settings         = Helpers.LoadSettings(this._config.KeyName);

            lock (this._lockObject)
            {
                for (var i = Clients.Count - 1; i >= 0; i--)
                {
                    try
                    {
                        var runningProcess = Process.GetProcessById(Clients[i].Process.Id);
                    }
                    catch (Exception)
                    {
                        Clients[i].Stop();
                        Clients.RemoveAt(i);
                    }
                }

                if (Clients.Count == 0)
                {
                    this.tmrCheckProcess.Enabled = false;

                    if (settings.Windowed || settings.Resize)
                    {
                        LineageClient.ChangeDisplaySettings(revertResolution);
                    }

                    tmrCheckProcess.Stop();
                }
            }
        }
Пример #3
0
        private void Launch(ProxyServer proxyServer)
        {
            var settings         = Helpers.LoadSettings(this._config.KeyName);
            var binFile          = Path.GetFileNameWithoutExtension(settings.ClientBin);
            var ip               = (uint)IPAddress.NetworkToHostOrder(BitConverter.ToInt32(IPAddress.Parse("127.0.0.1").GetAddressBytes(), 0));
            var revertResolution = new User32.DevMode();

            if (settings.Resize)
            {
                revertResolution = LineageClient.ChangeDisplaySettings(settings.Resolution.Width, settings.Resolution.Height, settings.Resolution.Colour);
            }
            else if (settings.Windowed)
            {
                revertResolution = LineageClient.ChangeDisplayColour(this._isWin8OrHigher ? 32 : 16);
            }

            Lineage.Run(settings, this._config.InstallDir, settings.ClientBin, ip, (ushort)proxyServer.LocalPort);

            var client = new LineageClient(this._config.KeyName, binFile, this._config.InstallDir, proxyServer, Clients);

            client.Initialize();

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

            if (settings.CaptureMouse)
            {
                client.SetAllowCapture();
            }

            lock (this._lockObject)
                Clients.Add(client);

            if (!tmrCheckProcess.Enabled)
            {
                this._revertResolution       = revertResolution;
                this.tmrCheckProcess.Enabled = true;
            }

            if (!tmrProxyStatus.Enabled)
            {
                tmrProxyStatus.Enabled = true;
            }
        }
Пример #4
0
 public static User32.DevMode ChangeDisplaySettings(User32.DevMode mode)
 {
     return(LineageClient.ChangeDisplaySettings(mode.dmPelsWidth, mode.dmPelsHeight, mode.dmBitsPerPel));
 }
Пример #5
0
 public static User32.DevMode ChangeDisplayColour(int bitCount)
 {
     return(LineageClient.ChangeDisplaySettings(-1, -1, bitCount));
 }
Пример #6
0
        private void Launch(Server server)
        {
            var settings = Helpers.LoadSettings(this._config.KeyName);
            var binFile  = Path.GetFileNameWithoutExtension(settings.ClientBin);
            var binpath  = Path.Combine(this._config.InstallDir, binFile);

            IPAddress[] ipOrDns;

            try
            {
                ipOrDns = Dns.GetHostAddresses(server.IpOrDns);
            }
            catch (SocketException)
            {
                MessageBox.Show(@"There was an error connecting to the server. Check the forums for any issues.",
                                @"Error Connecting!",
                                MessageBoxButtons.OK, MessageBoxIcon.Error);
                this.CheckServerStatus(false);
                return;
            }

            var revertResolution = new Win32Api.DevMode();

            if (settings.Resize)
            {
                revertResolution = LineageClient.ChangeDisplaySettings(settings.Resolution.Width, settings.Resolution.Height, settings.Resolution.Colour);
            }
            else if (settings.Windowed)
            {
                revertResolution = LineageClient.ChangeDisplayColour(this._isWin8OrHigher ? 32 : 16);
            }

            try
            {
                ProxyServer proxyServer = null;
                if (settings.UseProxy)
                {
                    proxyServer = new ProxyServer();
                    proxyServer.LocalAddress = "127.0.0.1";
                    proxyServer.LocalPort    = new Random().Next(1025, 50000);

                    proxyServer.RemoteAddress = server.IpOrDns;
                    proxyServer.RemotePort    = server.Port;
                    proxyServer.Start();
                }

                if (Lineage.Run(settings, this._config.InstallDir, settings.ClientBin,
                                (ushort)(settings.UseProxy ? proxyServer.LocalPort : server.Port), settings.UseProxy ? null : ipOrDns[0]))
                {
                    var client = new LineageClient(this._config.KeyName, binFile, this._config.InstallDir,
                                                   proxyServer, ipOrDns[0], server.Port, Clients);
                    client.Initialize();

                    lock (this._lockObject)
                        Clients.Add(client);

                    if (!tmrCheckProcess.Enabled)
                    {
                        this._revertResolution       = revertResolution;
                        this.tmrCheckProcess.Enabled = true;
                    }

                    if (!settings.Windowed && this._isWin8OrHigher)
                    {
                        this.Win10SetClientFocus();
                    }
                }
                else
                {
                    MessageBox.Show("There was an error injecting into the Lineage client. Try running it again!", "Error Launching!",
                                    MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            catch (Exception)
            {
                MessageBox.Show("An unknown error occurred launching the Lineage client. Try running it again!", "Error Launching!",
                                MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Пример #7
0
        } //end ChangeDisplayColour

        public static Win32Api.DevMode ChangeDisplaySettings(Win32Api.DevMode mode)
        {
            return(LineageClient.ChangeDisplaySettings(mode.dmPelsWidth, mode.dmPelsHeight, mode.dmBitsPerPel));
        } //end ChangeDisplaySettings
Пример #8
0
        } //end constructor

        public static Win32Api.DevMode ChangeDisplayColour(int bitCount)
        {
            return(LineageClient.ChangeDisplaySettings(-1, -1, bitCount));
        } //end ChangeDisplayColour