• XSS.stack #1 – первый литературный журнал от юзеров форума

Проблемы с подключением rdp

SlEpOy_SnIpEr

Премиум
Premium
Регистрация
17.02.2021
Сообщения
293
Реакции
70
Гарант сделки
4
Приветствую. Пишу маленькую прогу, которая при нажатии на кнопку button1_Click выполнялось подключение по rdp с заранее открытого текстового файла, но есть одно НО : после нажатия на кнопку подключение происходит нормально без проблем, после того как я нажимаю повторно на эту же кнопку то нету подключения.
Т.е. отключается от предыдущего подключения и запускается метод подключение к следующему серверу из списка.
Но дело в том, что ко 2-му серверу он не подключается. НО если нажать на кнопку 3 раз. но он подключается к 3-му серверу. Получается, что каждое второе 2-го нажатие на кнопку, не выполняется условие , которое в методе ConnectRdp "if (rdp.Connected == 0);"
Решил проверить переменную с помощью Console.WriteLine();
Дело в переменной rdp.Connected;
Получается, что после первого нажатия на кнопку значение переменной rdp.Connected = 0;
После подключения переменная изменяется на rdp.Connected = 2;
После 2-го нажатия на кнопку значение переменной rdp.Connected = 1 и перед подключением rdp.Connected = 1 ; и условие if (rdp.Connected == 0); не выполняется, но если убрать условие, то выдает ошибку.
но если 3-ий раз нажать на кнопку, то значения переменной изменяются как после 1-го нажатия на кнопку:
после нажатия на кнопку значение переменной rdp.Connected = 0;
После подключения переменная изменяется на rdp.Connected = 2;
И подключается к 3 серверу

Что не так с кодом? Буду признателен за помощь
Для подключения по rdp использую AxMSTSCLib

вот часть кода:
C#:
private int currentIndex = 0;
public Form1()
{
    InitializeComponent();
}

private void открытьToolStripMenuItem_Click(object sender, EventArgs e)
{
    openFileDialog1.Filter = "Текстовые файлы (*.txt)|*.txt";
    openFileDialog1.FileName = "Текстовой документ";
    if (openFileDialog1.ShowDialog() == DialogResult.OK)
    {
        listBox1.Items.Clear();
        string fileName = openFileDialog1.FileName;
        string[] lines = File.ReadAllLines(fileName);
        foreach (string line in lines)
        {
            listBox1.Items.Add(line);
        }
    }
}

private void button1_Click(object sender, EventArgs e)
{
    Console.WriteLine("После нажатия на кнопку: " + rdp.Connected);
    if (rdp.Connected == 1)
    {
        rdp.Disconnect();
    }
    ConnectRdp();
    currentIndex++;
}
private void ConnectRdp()
{
    if (currentIndex < listBox1.Items.Count)
    {
        Console.WriteLine("Перед подключением: " + rdp.Connected);
        if (rdp.Connected == 0)
        {
            //rdp.UserName = "";
            //rdp.AdvancedSettings9.ClearTextPassword = "";
            //rdp.AdvancedSettings9.EnableCredSspSupport = true;
            rdp.Server = listBox1.Items[currentIndex].ToString();
            rdp.Connect();
            Console.WriteLine("После подключения: " + rdp.Connected);
        }
    }
    else
    {
        MessageBox.Show("Закончились айпи!");
    }
}
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх