- Регистрация
- 15.02.2021
- Сообщения
- 819
- Реакции
- 158
- Баллы
- 43
Здравствуйте!
Хочу представить статью "Окна 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();
Посмотрите видео к статье.
Спасибо за внимание!
Надеюсь представленные коды и статья окажутся полезными!
Проголосуйте, пожалуйста!
- Номер конкурса статей
- Двадцатый конкурс статей
Последнее редактирование модератором:




