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

Hannes

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

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

zortexx

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

Hannes

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

doc

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

Hannes

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

VladZen

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

Hannes

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

VladZen

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

Astraport

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

Hannes

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

rostonix

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

Hannes

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

Hannes

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

Код:
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
Сообщения
19 544
Благодарностей
8 713
Баллы
113

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