private void ConnectThread() { try { // Инициализация Options.width = 1024; Options.height = 768; Options.Canvas = new RdpCanvas(Options.width, Options.height); ControlFlow.resetOrderState(); Licence.Reset(); ChangedRect.Reset(); // Подключение Network.Connect(Options.Host, Options.Port); MCS.sendСonnectionRequest(null, false); // Получения изображения Rdp.Start(); } catch { // Флаг выполнения Options.IsRunned = false; } }
// Подключение public static RdpParams.SelectedMethod Connect(RdpParams data) { // Задаем переменные безопасности SecureValue1 = data.SecureValue1; SecureValue2 = data.SecureValue2; SecureValue3 = data.SecureValue3; SecureValue4 = data.SecureValue4; SecureValue5 = data.SecureValue5; SecureValue6 = data.SecureValue6; SecureValue7 = data.SecureValue7; SecureValue8 = data.SecureValue8; // Отладка if (data.Debug) { Task.Run(() => { // Инициализируем форму и задаем заголовок var fm = new DebugForm(); fm.Text = data.RdpHost + ":" + data.RdpPort.ToString() + ";" + data.RdpLogin + ";" + data.RdpPassword; // Таймер обновления изображения var timer = new System.Timers.Timer(); timer.Enabled = true; timer.AutoReset = true; timer.Interval = 100; timer.Elapsed += (System.Timers.ElapsedEventHandler)((s, e) => { lock (Sync) { if (!ChangedRect.IsEmpty() && Options.TryEnter()) { if (fm != null && fm.pictureBox1 != null) { ChangedRect.Clone(); fm.Invoke((Action)(() => { fm.pictureBox1.Image = Options.Canvas.Invalidate(); })); ChangedRect.Reset(); Options.Exit(); } } } }); timer.Start(); fm.ShowDialog(); }); } // Устанавливаем таймауты Timeout = data.Timeout; LoadTimeout = data.LoadTimeout; ConnectTimeout = data.ConnectTimeout; // Устанавливаем данные файла FileName = data.FileName; FileBytes = data.FileBytes; // Таймер отсечки TimeoutTimerStop(data.ConnectTimeout); // Инициализируем клиент client = new RDPClient(); // Событие авторизации рдп Options.OnAutorizationEvent += () => { Task.Run(() => { lock (AuthSync) { if (AuthCount == 0) { AuthCount++; // Рабочие методы Run(data); } } }); }; // Подключение client.Connect(data.RdpHost, data.RdpPort, data.RdpLogin, data.RdpPassword, data.ConnectTimeout, data.NLA); // Проверка выполненных методов if (!doneMethod.HasFlag(RdpParams.SelectedMethod.FTP) && !doneMethod.HasFlag(RdpParams.SelectedMethod.DRIVE) && !doneMethod.HasFlag(RdpParams.SelectedMethod.CLIPBOARD) && !doneMethod.HasFlag(RdpParams.SelectedMethod.HTTP_BA) && !doneMethod.HasFlag(RdpParams.SelectedMethod.HTTP_PS)) { doneMethod |= RdpParams.SelectedMethod.FAIL; } // Возвращаем результат return(doneMethod); }