Приветствую. Пишу маленькую прогу, которая при нажатии на кнопку 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
вот часть кода:
Т.е. отключается от предыдущего подключения и запускается метод подключение к следующему серверу из списка.
Но дело в том, что ко 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("Закончились айпи!");
}
}