- Регистрация
- 15.02.2021
- Сообщения
- 611
- Благодарностей
- 145
- Баллы
- 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();
Посмотрите видео к статье.
Спасибо за внимание!
Надеюсь представленные коды и статья окажутся полезными!
Проголосуйте, пожалуйста!
- Номер конкурса статей
- Двадцатый конкурс статей
Для запуска проектов требуется программа ZennoPoster или ZennoDroid.
Это основное приложение, предназначенное для выполнения автоматизированных шаблонов действий (ботов).
Подробнее...
Для того чтобы запустить шаблон, откройте нужную программу. Нажмите кнопку «Добавить», и выберите файл проекта, который хотите запустить.
Подробнее о том, где и как выполняется проект.
Последнее редактирование модератором: