Пример #1
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;
            }
        }