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

lx2003

Client
Регистрация
15.02.2021
Сообщения
611
Благодарностей
145
Баллы
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();

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


Спасибо за внимание!
Надеюсь представленные коды и статья окажутся полезными!
Проголосуйте, пожалуйста!
 
Номер конкурса статей
Двадцатый конкурс статей

Для запуска проектов требуется программа ZennoPoster или ZennoDroid.
Это основное приложение, предназначенное для выполнения автоматизированных шаблонов действий (ботов).
Подробнее...

Для того чтобы запустить шаблон, откройте нужную программу. Нажмите кнопку «Добавить», и выберите файл проекта, который хотите запустить.
Подробнее о том, где и как выполняется проект.

Последнее редактирование модератором:

indigo666

Client
Регистрация
10.05.2014
Сообщения
1 154
Благодарностей
374
Баллы
83
Еще одна годнота ) Проголосовал
 
  • Спасибо
Реакции: lx2003

radv

Client
Регистрация
11.05.2015
Сообщения
3 820
Благодарностей
2 030
Баллы
113
Регистрация
23.03.2015
Сообщения
1 222
Благодарностей
763
Баллы
113
Полезные фичи. Уже есть пару проектов где это применю
 
  • Спасибо
Реакции: lx2003

Min-Z-Drav

Client
Регистрация
11.08.2019
Сообщения
11
Благодарностей
9
Баллы
3
а в using не нужно ничего добавлять? так как данный код выдает ошибки
 
  • Спасибо
Реакции: lx2003

radv

Client
Регистрация
11.05.2015
Сообщения
3 820
Благодарностей
2 030
Баллы
113
  • Спасибо
Реакции: lx2003 и Min-Z-Drav

Min-Z-Drav

Client
Регистрация
11.08.2019
Сообщения
11
Благодарностей
9
Баллы
3
  • Спасибо
Реакции: lx2003

lx2003

Client
Регистрация
15.02.2021
Сообщения
611
Благодарностей
145
Баллы
43
а в using не нужно ничего добавлять? так как данный код выдает ошибки
О! Действительно!

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

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

lx2003

Client
Регистрация
15.02.2021
Сообщения
611
Благодарностей
145
Баллы
43
Посмотреть вложение 115822
Прописал, ошибок нет, но и окон нет (куда вводить логин и пароль)
Только это.


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

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

Min-Z-Drav

Client
Регистрация
11.08.2019
Сообщения
11
Благодарностей
9
Баллы
3

Вложения

  • 9,8 КБ Просмотры: 63

lx2003

Client
Регистрация
15.02.2021
Сообщения
611
Благодарностей
145
Баллы
43
Не работает, либо это бетка глючит... или я что то делаю не правильно.
На любую стабильную сохраните версию, пожалуйста. 7.7.9.0, например.
У меня не 7.7.10.0 версия, младше.
 
  • Спасибо
Реакции: Min-Z-Drav

Min-Z-Drav

Client
Регистрация
11.08.2019
Сообщения
11
Благодарностей
9
Баллы
3
На любую стабильную сохраните версию, пожалуйста. 7.7.9.0, например.
У меня не 7.7.10.0 версия, младше.
Проверил на win 10 работает, на win 11 отказывается
Код работает, спасибо
UPD:
и на win 11 тоже работает, только нужно включить вместо хромиума включить хром
115824
 
Последнее редактирование:
  • Спасибо
Реакции: lx2003

Ахилес

Client
Read only
Регистрация
11.11.2020
Сообщения
956
Благодарностей
393
Баллы
63
Проверил на win 10 работает, на win 11 отказывается
Код работает, спасибо
UPD:
и на win 11 тоже работает, только нужно включить вместо хромиума включить хром
Посмотреть вложение 115824
Значит не правильная у тебя 11-я , небось последняя новомодная кривая и косая 22H2 ? :ap:

115833
 

izubr

Client
Регистрация
11.05.2011
Сообщения
558
Благодарностей
247
Баллы
43

Ахилес

Client
Read only
Регистрация
11.11.2020
Сообщения
956
Благодарностей
393
Баллы
63
  • Спасибо
Реакции: Min-Z-Drav и izubr

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