Возможно ли одновременное выполнение C# сниппета и логики шаблона?

DDDmoney

Client
Регистрация
12.02.2022
Сообщения
42
Благодарностей
5
Баллы
8
Всем привет, подскажите плз,
возможно ли одновременное выполнение внутри 1 потока C# сниппета и логики шаблона?
Есть шаблон, работающий в цикле. (Скрин ниже)
В середине у него стоит C# сниппет, выводящий форму с 2 кнопками, которая должна быть постоянно открыта,
чтобы кликать по кнопкам вручную.
Проблема что когда шаблон доходит до C# сниппета, он останавливается, на выполнении C# кода, и не идёт дальше.

Как сделать, чтобы и C# сниппет выполнялся и держал открытыми форму с кнопками, и логика шаблона крутилась?

КНОПКИ2.jpg
 

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 521
Благодарностей
1 318
Баллы
113
Всем привет, подскажите плз,
возможно ли одновременное выполнение внутри 1 потока C# сниппета и логики шаблона?
Есть шаблон, работающий в цикле. (Скрин ниже)
В середине у него стоит C# сниппет, выводящий форму с 2 кнопками, которая должна быть постоянно открыта,
чтобы кликать по кнопкам вручную.
Проблема что когда шаблон доходит до C# сниппета, он останавливается, на выполнении C# кода, и не идёт дальше.

Как сделать, чтобы и C# сниппет выполнялся и держал открытыми форму с кнопками, и логика шаблона крутилась?

Посмотреть вложение 96156
Запускать второй шаблон с кнопками, который в свою очередь будет вносить правки допустим через блокнот в действия первого бота.
 
  • Спасибо
Реакции: DDDmoney

Dr.Pipetka

Client
Регистрация
12.12.2017
Сообщения
1 307
Благодарностей
865
Баллы
113

DDDmoney

Client
Регистрация
12.02.2022
Сообщения
42
Благодарностей
5
Баллы
8
Спасибо. Способ сработал, но теперь новая проблема - кнопки по нажатию перестали работать.
(по нажатию должно отправляться в браузер эмуляция нажатия Shift + w
Подскажите плз, как исправить можно? Вот код:

C#:
            new Thread(new ThreadStart(Method)).Start();

            void Method()
            {
                while (true)
                {
                    //НАЧАЛО КОДА КОТОРЫЙ ДОЛЖЕН ВЫПОЛНЯТЬСЯ АСИНХРОННО
System.Windows.Forms.Form F = new System.Windows.Forms.Form();
//Название формы
F.Text = (project.Variables["coin_name_from_txt"].Value);

//локация формы
F.StartPosition = System.Windows.Forms.FormStartPosition.Manual;
F.Location = new Point(10, 30); // размеры формы
F.Size=new System.Drawing.Size(300, 150);

//создаем кнопку
System.Windows.Forms.Button button = new System.Windows.Forms.Button();
//задаем имя чекбоксам
button.Text = "КНОПКА 1";

//положение в окне
button.Location = new System.Drawing.Point(5,5); //размер кнопки
button.Size=new System.Drawing.Size(80, 80); //кидаем на форму
F.Controls.Add(button);

//создаем 2 кнопку
System.Windows.Forms.Button button2 = new System.Windows.Forms.Button();
//задаем имя чекбоксам
button2.Text = "КНОПКА 2";

//положение в окне
button2.Location = new System.Drawing.Point(120,5); //размер кнопки
button2.Size=new System.Drawing.Size(80, 80); //кидаем на форму
F.Controls.Add(button2);

//событие при нажатии КНОПКИ 1
button.Click+= delegate(object sender, System.EventArgs e)
{
    //строкой ниже событие  - эмулируем нажатие ctrl+w
instance.SendText("{SHIFTDOWN}w{SHIFTUP}", 15);   
};

//событие при нажатии КНОПКИ  2
button2.Click+= delegate(object sender, System.EventArgs e)
{
 //строкой ниже событие  - эмулируем нажатие ctrl+s
instance.SendText("{SHIFTDOWN}s{SHIFTUP}", 15);   
};


//запускаем форму       
F.ShowDialog();

     //КОНЕЦ КОДА КОТОРЫЙ ДОЛЖЕН ВЫПОЛНЯТЬСЯ АСИНХРОННО

                    Thread.Sleep(6000); // пауза в мс между выполнениями 
                }
            }
            return 0;
 

Dr.Pipetka

Client
Регистрация
12.12.2017
Сообщения
1 307
Благодарностей
865
Баллы
113
Спасибо. Способ сработал, но теперь новая проблема - кнопки по нажатию перестали работать.
(по нажатию должно отправляться в браузер эмуляция нажатия Shift + w
Подскажите плз, как исправить можно? Вот код:

C#:
            new Thread(new ThreadStart(Method)).Start();

            void Method()
            {
                while (true)
                {
                    //НАЧАЛО КОДА КОТОРЫЙ ДОЛЖЕН ВЫПОЛНЯТЬСЯ АСИНХРОННО
System.Windows.Forms.Form F = new System.Windows.Forms.Form();
//Название формы
F.Text = (project.Variables["coin_name_from_txt"].Value);

//локация формы
F.StartPosition = System.Windows.Forms.FormStartPosition.Manual;
F.Location = new Point(10, 30); // размеры формы
F.Size=new System.Drawing.Size(300, 150);

//создаем кнопку
System.Windows.Forms.Button button = new System.Windows.Forms.Button();
//задаем имя чекбоксам
button.Text = "КНОПКА 1";

//положение в окне
button.Location = new System.Drawing.Point(5,5); //размер кнопки
button.Size=new System.Drawing.Size(80, 80); //кидаем на форму
F.Controls.Add(button);

//создаем 2 кнопку
System.Windows.Forms.Button button2 = new System.Windows.Forms.Button();
//задаем имя чекбоксам
button2.Text = "КНОПКА 2";

//положение в окне
button2.Location = new System.Drawing.Point(120,5); //размер кнопки
button2.Size=new System.Drawing.Size(80, 80); //кидаем на форму
F.Controls.Add(button2);

//событие при нажатии КНОПКИ 1
button.Click+= delegate(object sender, System.EventArgs e)
{
    //строкой ниже событие  - эмулируем нажатие ctrl+w
instance.SendText("{SHIFTDOWN}w{SHIFTUP}", 15);  
};

//событие при нажатии КНОПКИ  2
button2.Click+= delegate(object sender, System.EventArgs e)
{
//строкой ниже событие  - эмулируем нажатие ctrl+s
instance.SendText("{SHIFTDOWN}s{SHIFTUP}", 15);  
};


//запускаем форму      
F.ShowDialog();

     //КОНЕЦ КОДА КОТОРЫЙ ДОЛЖЕН ВЫПОЛНЯТЬСЯ АСИНХРОННО

                    Thread.Sleep(6000); // пауза в мс между выполнениями
                }
            }
            return 0;
Нипонятно, к project норм обращается
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 719
Баллы
113
Нипонятно, к project норм обращается
вроде как, instance в монопольном доступе. отдельный поток не сможет получить к нему доступ.
кажется как то можно создать отдельный объект инстанста, по его параметрам и тогда будет доступ.... но это теория, проверять надо.
 

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