Ручные действия

Hannes

Client
Регистрация
03.02.2016
Сообщения
527
Благодарностей
273
Баллы
63
Добрый день!

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

zortexx

Client
Регистрация
19.09.2011
Сообщения
2 520
Благодарностей
1 226
Баллы
113

Hannes

Client
Регистрация
03.02.2016
Сообщения
527
Благодарностей
273
Баллы
63
Искать можно, когда знаешь что и как примерно называется. Мои запросы к желаемому результату не привели. Если подскажите, буду очень благодарен!
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
снипет

Код:
System.Windows.Forms.Form F = new System.Windows.Forms.Form();

//создаем кнопку
System.Windows.Forms.Button button = new System.Windows.Forms.Button();
button.Text = "Продолжить";
//положение в окне
button.Location = new System.Drawing.Point(50,80);
//размер кнопочки
button.Size=new System.Drawing.Size(180, 50);
//кидаем на форму
F.Controls.Add(button);

Console.Beep(1100, 200);
//описываем событие для клика по кнопке
button.Click+= delegate(object sender, System.EventArgs e)
{
        F.Dispose();//Dispose – это уничножение объекта. Есть аналог Close, но Dispose //выгрузит форму из памяти
};
//запускаем форму
F.ShowDialog();
 
  • Спасибо
Реакции: Hannes

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
не знаю как в новых версиях, но в 5.0.8.2 конфликтует при загрузке файлов. Т.е. если эта форма активна и я попробую, например, загрузить аватар - мейкер крашнется. про зп не в курсе
 
  • Спасибо
Реакции: Hannes

Hannes

Client
Регистрация
03.02.2016
Сообщения
527
Благодарностей
273
Баллы
63
Спасибо, Doc, очень помог!
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 453
Благодарностей
5 913
Баллы
113

Hannes

Client
Регистрация
03.02.2016
Сообщения
527
Благодарностей
273
Баллы
63
Спасибо! А нет решения для организации подобного действия?
Остановка проекта в ожидание действий юзера, всплывает окно с двумя кнопками: продолжить или повторить определенный этап.
Нужно заказывать или есть готовое?
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 453
Благодарностей
5 913
Баллы
113
Спасибо! А нет решения для организации подобного действия?
Остановка проекта в ожидание действий юзера, всплывает окно с двумя кнопками: продолжить или повторить определенный этап.
Нужно заказывать или есть готовое?
Я же вам скинул ссылку на метод)
Добавьте в проект действие с кодом:
Код:
instance.WaitForUserAction(300);
И у вас будет окно инстанса доступно на 5 минут для ваших действий.
 
  • Спасибо
Реакции: Hannes

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 983
Благодарностей
4 434
Баллы
113
Вам же выше все показали?
Ещё для ПМ можно юзать точку останова.
 
  • Спасибо
Реакции: Hannes

Hannes

Client
Регистрация
03.02.2016
Сообщения
527
Благодарностей
273
Баллы
63
Возможно написал криво. Выполняется, например, шаблон. На этапе N открывается окно инстанса с выбором "продолжить" или "повторить". Если "повторить", проект возвращается к определенному моменту шаблона, а если "продолжить" - продолжает его выполнение.
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
  • Спасибо
Реакции: Hannes

Hannes

Client
Регистрация
03.02.2016
Сообщения
527
Благодарностей
273
Баллы
63
Супер, то что нужно!
Великолепный мануал!
Спасибо огромное, Rostonix!
 

Hannes

Client
Регистрация
03.02.2016
Сообщения
527
Благодарностей
273
Баллы
63
Для тех, у кого будет похожая задача готовый сниппет:

Код:
System.Windows.Forms.Form F = new System.Windows.Forms.Form();
F.Text = "Форма";
F.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; // открывает форму посередине экрана. F - имя формы
//создаем кнопку
System.Windows.Forms.Button button = new System.Windows.Forms.Button();
//задаем имя чекбоксам
button.Text = "Да";
//положение в окне
button.Location = new System.Drawing.Point(50,50);
//размер кнопочки
button.Size=new System.Drawing.Size(75, 75);
//кидаем на форму
F.Controls.Add(button);

button.Click+= delegate(object sender, System.EventArgs e)
{
    project.Variables["Переменная 1"].Value = "значение переменной"; // вот присваиваем значение
    F.Dispose();
};

System.Windows.Forms.Button button1 = new System.Windows.Forms.Button();
//задаем имя чекбоксам
button1.Text = "Нет";
//положение в окне
button1.Location = new System.Drawing.Point(150,50);
//размер кнопочки
button1.Size=new System.Drawing.Size(75, 75);
//кидаем на форму
F.Controls.Add(button1);
button1.Click+= delegate(object sender, System.EventArgs e)
{
    project.Variables["переменная 2"].Value = "значение переменной"; // вот присваиваем значение
    F.Dispose();
};

//запускаем форму
F.ShowDialog();
return 0;
 
Последнее редактирование:
  • Спасибо
Реакции: Dimon174

runlike

Client
Регистрация
22.09.2015
Сообщения
175
Благодарностей
51
Баллы
28
Было уже несколько тем и я даже выкладывал готовый код, который использовал у себя. Продублирую, чтобы люди не создавали темы

1. Остановка для работе в браузере. Продолжение по клику на ОК
Код:
var dialogForm = new System.Windows.Forms.Form { Size = new Size(300, 200), ShowIcon = false, Name = "DialogForm", Text = @"Продолжим?",
                FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog, MinimizeBox = false, MaximizeBox = false };
var okButton = new System.Windows.Forms.Button { Name = "OKButton", Text = @"ГО ДАЛЬШЕ", Size = new Size(250, 150) };
dialogForm.Controls.Add(okButton);
dialogForm.AcceptButton = okButton;
okButton.Location = new Point(25, 15);
okButton.Click += (delegate
{
    dialogForm.DialogResult = System.Windows.Forms.DialogResult.OK;
});
var dialogResult = dialogForm.ShowDialog();
2. Остановка проекта и вывод окна для ввода нужных данных в переменные.
Код:
System.Windows.Forms.Form F = new System.Windows.Forms.Form();
F.Text = "Наша форма";
//создаем текстбокс
System.Windows.Forms.TextBox textb = new System.Windows.Forms.TextBox();
//указываем местоположение
textb.Location = new System.Drawing.Point(50,50);
//так же можно указать размеры текстбокса
textb.Width=200;
// добавляем его на форму
F.Controls.Add(textb);
//создаем текстбокс
System.Windows.Forms.TextBox textb2 = new System.Windows.Forms.TextBox();
//указываем местоположение
textb2.Location = new System.Drawing.Point(50,130);
//так же можно указать размеры текстбокса
textb2.Width=200;
// добавляем его на форму
F.Controls.Add(textb2);
//создаем кнопку
System.Windows.Forms.Button button = new System.Windows.Forms.Button();
//задаем имя чекбоксам
button.Text = "ID";
//положение в окне
button.Location = new System.Drawing.Point(110,20);
//размер кнопочки
button.Size=new System.Drawing.Size(75, 20);
//кидаем на форму
F.Controls.Add(button);
//создаем кнопку
System.Windows.Forms.Button button1 = new System.Windows.Forms.Button();
//задаем имя чекбоксам
button1.Text = "Пароль";
//положение в окне
button1.Location = new System.Drawing.Point(110,100);
//размер кнопочки
button1.Size=new System.Drawing.Size(75, 20);
//кидаем на форму
F.Controls.Add(button1);
//создаем кнопку
System.Windows.Forms.Button button2 = new System.Windows.Forms.Button();
//задаем имя чекбоксам
button2.Text = "ОК";
//положение в окне
button2.Location = new System.Drawing.Point(185,202);
//размер кнопочки
button2.Size=new System.Drawing.Size(100, 60);
//кидаем на форму
F.Controls.Add(button2);
button2.Click += (delegate
{
    project.Variables["answer"].Value = textb.Text;
    project.Variables["answer2"].Value = textb2.Text;
            F.Dispose();
});
textb2.Text=project.Variables["answer2"].Value;
F.AcceptButton = button2;
F.ShowDialog();
3. Остановка проекта для выбора одного из 2х действий
Код:
System.Windows.Forms.Form F = new System.Windows.Forms.Form();
F.Text = "Наша форма";
//создаем кнопку
System.Windows.Forms.Button button = new System.Windows.Forms.Button();
//задаем имя чекбоксам
button.Text = "ДА";
//положение в окне
button.Location = new System.Drawing.Point(10,5);
//размер кнопочки
button.Size=new System.Drawing.Size(100, 250);
//кидаем на форму
F.Controls.Add(button);
//создаем кнопку
System.Windows.Forms.Button button2 = new System.Windows.Forms.Button();
//задаем имя чекбоксам
button2.Text = "НЕТ";
//положение в окне
button2.Location = new System.Drawing.Point(175,5);
//размер кнопочки
button2.Size=new System.Drawing.Size(100, 250);
//кидаем на форму
F.Controls.Add(button2);


button.Click += (delegate
{
    project.Variables["answer"].Value = "yes";
            F.Dispose();
});
F.AcceptButton = button;
button2.Click += (delegate
{
    project.Variables["answer"].Value = "no";
            F.Dispose();
});

//запускаем форму
F.ShowDialog();
return 0;
 
Последнее редактирование:

michaelkoch

Новичок
Регистрация
17.03.2017
Сообщения
3
Благодарностей
0
Баллы
1
Здравствуйте. С кнопками разобрался. но инстант приходится в ручную запускать и закрывать. Подскажите пожалуйста 1. Что бы инстант включался одновременно с кнопками и закрывался после нажатия. 2. Если вдруг пользователь отошёл, то по таймеру 300 секунд нажималась выбранная кнопка по умолчанию и проект продолжал работу дальше. Как такое реализовать???
 

twisterrr

Client
Регистрация
25.12.2011
Сообщения
284
Благодарностей
23
Баллы
18
возможно сделать окно остановку для ручного разгадывания рекаптчи2 ? что бы после разгадывания шаблон продолжал дальше работать
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 117
Баллы
113

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