Окна Winforms на CSharp: логин и пароль; смс-код; кнопка "Продолжить шаблон"

  • Автор темы Автор темы lx2003
  • Дата начала Дата начала

lx2003

Client
Регистрация
15.02.2021
Сообщения
819
Реакции
158
Баллы
43
115646

Здравствуйте!

Хочу представить статью "Окна Winforms на CSharp: логин и пароль; смс-код; кнопка "Продолжить шаблон"".

Статья не сильно большая получилась, но надеюсь коды, которые в ней представлены будут полезны.
Поэтому мог бы отнести статью к категории - пусть будет на форуме.

Когда разрабатываешь шаблон в Зеннопостер, конечно, можно использовать входящие настройки.
Т.е. настройки, которые настраиваются во время работы.

Но в некоторых случаях есть необходимость использования отдельных окон - WinForms. Это или из-за необходимости сохранения безопасности каких-либо данных, либо когда требуется ввести определенные данные для какой-то работы без использования дополнительных настроек.

Хочу предложить к рассмотрению три сниппета WinForms.

1) Форма для ввода данных логина и пароля
Это когда необходимо вводить имя пользователя и пароля с передачей их в переменные.

2) Форма для ввода смс-кода
Это когда необходимо ввести в поле в браузере посимвольно какой-то код или информацию, который посимвольно передается в Список.

3) Дожидаемся действия пользователя, например, в инстансе и для продолжения работы шаблона нажмите кнопку
Обычное окно, не нажав кнопку "Продолжить" не позволяет продолжить исполнение всего шаблона.
Если добавите к нему таймер, то может быть замена кубику "Ожидание действия пользователем".

И добавьте обязательно в шаблон проекта:

В статитических блоках (там, где настройки проекта, списки, таблицы), которые включаются правой кнопкой мыши, нужно добавить блок "Директивы using и общий код".

Далее во вкладке "Директивы using" добавить две строки:
using ZennoLab.CommandCenter;
using System.Windows.Forms;

И в ссылках из GAC тоже должен быть добавлен System.Windows.Forms. Без этой строки тоже работает.



Ниже представлены коды этих окон на CSharp.

C#. Форма для ввода данных логина и пароля:
Развернуть Свернуть Копировать
// Создаем переменные для хранения логина и пароля
string login = "";
string password = "";

// Создаем форму для ввода данных
Form form = new Form();
form.Text = "Введите логин и пароль";
form.Width = 300;
form.Height = 150;


// Создаем поля для ввода логина и пароля
TextBox loginBox = new TextBox();
loginBox.Name = "loginBox";
loginBox.Left = 100;
loginBox.Top = 20;
loginBox.Width = 150;
loginBox.Text = project.Variables["Login"].Value;

TextBox passwordBox = new TextBox();
passwordBox.Name = "passwordBox";
passwordBox.Left = 100;
passwordBox.Top = 50;
passwordBox.Width = 150;
passwordBox.PasswordChar = '*';
passwordBox.Text = project.Variables["Password"].Value;

// Создаем надписи для полей ввода
Label loginLabel = new Label();
loginLabel.Text = "Логин:";
loginLabel.Left = 20;
loginLabel.Top = 20;
loginLabel.Width = 80;

Label passwordLabel = new Label();
passwordLabel.Text = "Пароль:";
passwordLabel.Left = 20;
passwordLabel.Top = 50;
passwordLabel.Width = 80;

// Создаем кнопку для отправки данных
Button submitButton = new Button();
submitButton.Text = "Отправить";
submitButton.Left = 100;
submitButton.Top = 80;
submitButton.Width = 100;



// Добавляем обработчик события нажатия на кнопку
submitButton.Click += (sender, e) =>
{

// Получаем значения из полей ввода
login = loginBox.Text;
password = passwordBox.Text;

// Закрываем форму
form.Close();

};

// Добавляем элементы на форму
form.Controls.Add(loginBox);
form.Controls.Add(passwordBox);
form.Controls.Add(loginLabel);
form.Controls.Add(passwordLabel);
form.Controls.Add(submitButton);
form.AcceptButton= submitButton;

// Отображаем форму
form.ShowDialog();

project.Variables["Login"].Value = login;
project.Variables["Password"].Value = password;

C#. Форма для ввода смс-кода:
Развернуть Свернуть Копировать
// Очищаем список, где будет хранится временный код
var str1="Список 1";

project.Lists[str1].Clear();

// Создаем переменные для хранения логина и пароля
string sms_code = "";

// Создаем форму для ввода данных
Form form = new Form();
form.Text = "Введите смс код";
form.Width = 800;
form.Height = 350;

// Создаем поля для ввода логина и пароля
TextBox sms_code_Box = new TextBox();
sms_code_Box.Name = "sms_code_Box";
sms_code_Box.Left = 20;
sms_code_Box.Top = 80;
sms_code_Box.Width = 310;
sms_code_Box.Height = 120;


// Создаем надписи для полей ввода
Label sms_code_Label = new Label();
sms_code_Label.Text = "СМС-код, отправленный на номер " + project.Variables["Variable0"].Value + ":";
sms_code_Label.Left = 20;
sms_code_Label.Top = 20;
sms_code_Label.Width = 850;
sms_code_Label.Height = 150;

// Создаем кнопку для отправки данных
Button submitButton = new Button();
submitButton.Text = "Отправить";
submitButton.Left = 100;
submitButton.Top = 180;
submitButton.Width = 100;

// Добавляем обработчик события нажатия на кнопку
submitButton.Click += (sender, e) =>
{
// Получаем значения из полей ввода
sms_code = sms_code_Box.Text;

// Закрываем форму
form.Close();
};

// Добавляем элементы на форму
form.Controls.Add(sms_code_Box);
form.Controls.Add(sms_code_Label);
form.Controls.Add(submitButton);
form.AcceptButton = submitButton;

// Отображаем форму
form.ShowDialog();

project.Variables["sms_code"].Value = sms_code;
project.SendInfoToLog("sms_code: " + sms_code);

// Пройти по каждому символу в строке
foreach (char c in sms_code)
{
    // Добавить символ в список

project.SendInfoToLog("sms_code: " + c);
project.Lists[str1].Add(c);
}

C#. Дожидаемся действия пользователя, например, в инстансе, и для продолжения работы шаблона предлагаем нажать кнопку Продолжить:
Развернуть Свернуть Копировать
// Создаем форму для ввода данных
Form form = new Form();
form.Text = "Действие пользователя";
form.Width = 560;
form.Height = 150;

// Создаем надписи для полей ввода
Label Label1 = new Label();
Label1.Text = "Необходимо действие пользователя в инстансе (встроенном браузере в Zennoposter)!";
Label1.Left = 20;
Label1.Top = 20;
Label1.Width = 800;

Label Label2 = new Label();
Label2.Text = "После завершения нажмите кнопку Продолжить";
Label2.Left = 20;
Label2.Top = 50;
Label2.Width = 800;

// Создаем кнопку для отправки данных
Button submitButton = new Button();
submitButton.Text = "Продолжить";
submitButton.Left = 100;
submitButton.Top = 80;
submitButton.Width = 100;
        // Установите свойство Topmost у формы в true
form.TopMost = true;


// Добавляем обработчик события нажатия на кнопку
submitButton.Click += (sender, e) =>
{


// Закрываем форму
form.Close();

};

// Добавляем элементы на форму
form.Controls.Add(Label1);
form.Controls.Add(Label2);
form.Controls.Add(submitButton);
form.AcceptButton= submitButton;

    // Отображаем форму
form.ShowDialog();

Посмотрите видео к статье.


Спасибо за внимание!
Надеюсь представленные коды и статья окажутся полезными!
Проголосуйте, пожалуйста!
 
Номер конкурса статей
  1. Двадцатый конкурс статей
Последнее редактирование модератором:
а в using не нужно ничего добавлять? так как данный код выдает ошибки
 
  • Спасибо
Реакции: lx2003
  • Спасибо
Реакции: lx2003 и Min-Z-Drav
а в using не нужно ничего добавлять? так как данный код выдает ошибки
О! Действительно!

В статитических блоках (там, где настройки проекта, списки, таблицы), которые включаются правой кнопкой мыши, нужно добавить блок директивы using и общий код. И во вкладке директивы using добавить две строки:
using ZennoLab.CommandCenter;
using System.Windows.Forms;

И в ссылках из GAC тоже должен быть добавлен System.Windows.Forms. Без этой строки тоже работает.
 
  • Спасибо
Реакции: Min-Z-Drav
Посмотреть вложение 115822
Прописал, ошибок нет, но и окон нет (куда вводить логин и пароль)

Только это.


В статитических блоках (там, где настройки проекта, списки, таблицы), которые включаются правой кнопкой мыши, нужно добавить блок директивы using и общий код. И во вкладке директивы using добавить две строки:
using ZennoLab.CommandCenter;
using System.Windows.Forms;

И в ссылках из GAC тоже должен быть добавлен System.Windows.Forms. Без этой строки тоже работает.
 
  • Спасибо
Реакции: Min-Z-Drav
Не работает, либо это бетка глючит... или я что то делаю не правильно.
На любую стабильную сохраните версию, пожалуйста. 7.7.9.0, например.
У меня не 7.7.10.0 версия, младше.
 
  • Спасибо
Реакции: Min-Z-Drav
На любую стабильную сохраните версию, пожалуйста. 7.7.9.0, например.
У меня не 7.7.10.0 версия, младше.
Проверил на win 10 работает, на win 11 отказывается
Код работает, спасибо
UPD:
и на win 11 тоже работает, только нужно включить вместо хромиума включить хром
115824
 
Последнее редактирование:
  • Спасибо
Реакции: lx2003
Проверил на win 10 работает, на win 11 отказывается
Код работает, спасибо
UPD:
и на win 11 тоже работает, только нужно включить вместо хромиума включить хром
Посмотреть вложение 115824
Значит не правильная у тебя 11-я , небось последняя новомодная кривая и косая 22H2 ? :ap:

115833
 
  • Спасибо
Реакции: Min-Z-Drav и izubr

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)