[Plugin] Диалоговое окно

nicanil

Moderator
Команда форума
Регистрация
06.03.2016
Сообщения
1 535
Благодарностей
1 224
Баллы
113
Позвольте представить вам небольшой плагин для вывода диалоговых окон.
Порой возникают ситуации в которых без вмешательства юзера не обойтись. Надо задать ему простой вопрос и получить простой ответ "Да" или "Нет", и в зависимости от ответа выполнять проект дальше. В C# для вывода таких простых диалоговых окон есть класс MessageBox, в данном плагине он и используется.

Внешний вид настроек:
main.png
Рядом с текстом можно вывести ещё и иконку. Ниже на скрине отображены доступные иконки (запуск производился на Windows 10):
icons.png

Некоторые иконки повторяются, но для них используются разные типы (например 3, 5 и 8-е окно. Для них использовались типы Error, Hand, Stop соответсвенно). В настройках использовал те названия, которые используются в C#. Так же, если выбрать иконку, то при появлении окна будет воспроизводится звуковой сигнал (у меня без звука отображались окна только при "Без иконки" и "Question").

Так же можно менять отображаемые кнопки. На скриншоте ниже можно увидеть доступные варианты (менять их текст нельзя):
buttons.png

Есть возможность указать переменную в которую запишется значение кнопки, которую нажал пользователь.
Шаблон продолжит работу только после того как пользователь выберет один из вариантов ответа.
Диалоговое окно отображается поверх всех других окон.
Во вложении плагин и исходник
 

Вложения

Для запуска проектов требуется программа ZennoPoster.
Это основное приложение, предназначенное для выполнения автоматизированных шаблонов действий (ботов).
Подробнее...

Для того чтобы запустить шаблон, откройте программу ZennoPoster. Нажмите кнопку «Добавить», и выберите файл проекта, который хотите запустить.
Подробнее о том, где и как выполняется проект.

Последнее редактирование:

nicanil

Moderator
Команда форума
Регистрация
06.03.2016
Сообщения
1 535
Благодарностей
1 224
Баллы
113
Полезное дело затеяли, товарищ @nicanil!
Побольше таких инициатив со своими полезными плагинами и зенка станет лучше и приятнее :-)
За это стоит сказать спасибо тебе (ничего, что на ты?), Lord_Alfred:bt:Недавно прочитал твоё сообщение, особо обратил внимание на последнее предложение про "выложить в паблик", "прилив сил". Вот решил попробовать поделиться чем-то.
Сижу жду прилив сил:D
 
  • Спасибо
Реакции: juk88 и Lord_Alfred

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 889
Благодарностей
3 648
Баллы
113
ничего, что на ты?
Конечно, не проблема :-)

Сижу жду прилив сил:D
Уже должны потихоньку начать приливаться )))) Главное, не останавливаться на достигнутом :bf:

PS: подкину идею что можно реализовать: в зенке появились C# методы для отправки HTTP PUT/DELETE и др. запросов, но в кубик разработчики поленились это сделать. Вот как раз можно по аналогии с кубиком POST-запроса сделать остальные, на них даже тут на форуме спрос есть, только многие на C# не могут написать рабочий код для этого)
 
  • Спасибо
Реакции: juk88 и nicanil

nicanil

Moderator
Команда форума
Регистрация
06.03.2016
Сообщения
1 535
Благодарностей
1 224
Баллы
113
Главное, не останавливаться на достигнутом
У меня есть ещё парочка плагинов, которые можно показать миру, но перед этим их надо немного довести до ума.
подкину идею что можно реализовать...методы для отправки HTTP PUT/DELETE
Вот выложу уже готовые плагины и надо будет поближе посмотреть на эти методы.
 
  • Спасибо
Реакции: Lord_Alfred

JanCarlo

Client
Регистрация
04.03.2018
Сообщения
324
Благодарностей
37
Баллы
28
@nicanil
Привет! А скажи пожалуйста, можно ли в такое диалоговое окно вывести какую либо информацию? Ну к примеру в этом окне отобразить содержимое регулярки?
 

nicanil

Moderator
Команда форума
Регистрация
06.03.2016
Сообщения
1 535
Благодарностей
1 224
Баллы
113
@nicanil
Привет! А скажи пожалуйста, можно ли в такое диалоговое окно вывести какую либо информацию? Ну к примеру в этом окне отобразить содержимое регулярки?
Да. В поле "Внутренний текст" вводишь необходимый тебе текст (или макрос переменной с текстом) и он выведется в диалоговом окне.
upload_2019-1-21_22-16-10.png
 
  • Спасибо
Реакции: JanCarlo

JanCarlo

Client
Регистрация
04.03.2018
Сообщения
324
Благодарностей
37
Баллы
28
Да. В поле "Внутренний текст" вводишь необходимый тебе текст (или макрос переменной с текстом) и он выведется в диалоговом окне.
Посмотреть вложение 35437
супер, спасибо! как раз вот тут искал, но возможно вопрос криво задал и толком не поняли :-) https://zennolab.com/discussion/threads/vozvraschenie-dannyx-prjamo-v-nastrojki.53521/#post-399382
 

nicanil

Moderator
Команда форума
Регистрация
06.03.2016
Сообщения
1 535
Благодарностей
1 224
Баллы
113
супер, спасибо! как раз вот тут искал, но возможно вопрос криво задал и толком не поняли :-) https://zennolab.com/discussion/threads/vozvraschenie-dannyx-prjamo-v-nastrojki.53521/#post-399382
Только стоит учитывать тот факт, что плагины пока ещё сыроватая штука - их нельзя использовать в зеннобоксе, в меню плагина нет контекстного меню (в меню нет никакой реакции на клик правой кнопкой мыши). Все плагины я писал для себя и никому их не продавал ни отдельно ни в составе шаблонов, поэтому не могу сказать, что произойдёт если продать человеку закрытый шаблон в котором используется плагин (при условии, что продаётся именно для ZennoPoster, не ZennoBox). Возможно покупателю просто надо у себя дополнительно установить этот плагин.
 
  • Спасибо
Реакции: Astraport

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 294
Благодарностей
3 444
Баллы
113

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 889
Благодарностей
3 648
Баллы
113
Уже много лет работаю с зенкой и ни разу не нужны были MessageBox'ы.
А тут вот после появления плагина - сразу нашлось место, куда можно их засунуть :D
 

Шива

Известная личность
Регистрация
05.02.2018
Сообщения
1 090
Благодарностей
338
Баллы
83
Полезное дело затеяли, товарищ @nicanil!
Побольше таких инициатив со своими полезными плагинами и зенка станет лучше и приятнее :-)
Если бы где то кто то выкатывал бы апдейты с учетом предложений то и инициативы были бы не нужны.
 

Alex733

Client
Регистрация
27.11.2017
Сообщения
245
Благодарностей
171
Баллы
43
Еще бывает нужно, что бы вместо message box выскакивала форма для ввода, например ту же капчу ввести или еще что-нибудь. Попробовал сделать, но работает только в одном потоке.
 

zortexx

Client
Регистрация
19.09.2011
Сообщения
2 524
Благодарностей
1 211
Баллы
113
Пока плагины не допилят, смысла в них не вижу. Проще заготовку на шарпе втыкать. Благо, примеров на форуме полно. Хоть алертов, хоть диалоговых окон.
И, главное все работает и в боксе и в многопотоке.

P.S.: хотя нет, поправлюсь: вообще в них смысла нет. Также как и в функции проект в проекте, - кодом удобнее.

А вот группировки экшенов/кубиков не хватает.
 
Последнее редактирование:

DmitryAk

Client
Регистрация
14.12.2016
Сообщения
864
Благодарностей
792
Баллы
93
P.S.: хотя нет, поправлюсь: вообще в них смысла нет. Также как и в функции проект в проекте, - кодом удобнее.
На самом деле смысл в плагинах есть, только не в такой реализации как оно сделано в зенке. Сейчас действительно проще, удобнее, безпроблемнее и универсальнее воткнуть сниппет или вообще наваять стороннюю либу и подрубить её.
 

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 889
Благодарностей
3 648
Баллы
113
P.S.: хотя нет, поправлюсь: вообще в них смысла нет. Также как и в функции проект в проекте, - кодом удобнее.
Сейчас действительно проще, удобнее, безпроблемнее и универсальнее воткнуть сниппет или вообще наваять стороннюю либу и подрубить её.
Ну это вот нам, кто понимает код - удобнее скопипастить что-то или подрубить либу и использовать её :-)
А тем кто в коде не разбирается - всегда было и будет удобнее с интерфейсом кубиков работать и ничего в этом плохого нет)) Ну и, к слову, в защиту плагинов - они очень удобны тем, что визуально на карте выглядят по-другому (как минимум - иконкой), можно быстрее ориентироваться по проекту, чем смотреть на десятки кубиков "Свой C# код" :cn:

PS: то что их нужно допилить, понятное дело. Просто, думаю, разрабы выпустили их уже в таком состоянии только для того, чтоб понять - понравится ли народу и будут ли этим пользоваться. Чтоб потом не выпиливать кучу всего, если всё таки это было нужно 5 человекам с форума )))
 

DmitryAk

Client
Регистрация
14.12.2016
Сообщения
864
Благодарностей
792
Баллы
93
Ну это вот нам, кто понимает код - удобнее скопипастить что-то или подрубить либу и использовать её :-)
А тем кто в коде не разбирается - всегда было и будет удобнее с интерфейсом кубиков работать и ничего в этом плохого нет))
Плохого тут нет, просто был бы адекватный плагин интерфейс позволяющий сделать либу-плагин, дать либе возможность показать на нужном паренте окно настроек (без всяких убогих бот-уи), позволить добавить кубик плагина через менюшку и панель расширеного редактора ну и вызывать его в зп уже в рабочем режиме и было бы счастье. Для меня по крайней мере. И народ, который код в глаза не видел, мог бы плагин установить и использовать в той же манере, что и зенновские кубики.

И функционал зенки мог бы расширяться за счет комьюнити. И пусть, по модели "жадности" большинство пользователей запрятали бы свои разработки, все равно что-то шло бы в общую копилку. На данный момент расширение функционала идет за счет прямых доработок команды зеннолаба + коллективное бессознательное творчество пополняющее базу снипетов + возможность подрубать библиотеки, что конечно решает 99% вопросов, но убирает ту самую возможность "быстро" накидывать бизнес-логику на кубиках.

PS: я еще почему так разочарован - иногда возникает необходимость или желание чего-то сотворить мелкое и начинаешь логику продумывать, кубики набрасывать, потом думаешь "да ну его, все равно потом на код переносить придется, для повторного использования" закрываешь зенку нафиг и IDE запускаешь и кодом шарашишь.
 

zortexx

Client
Регистрация
19.09.2011
Сообщения
2 524
Благодарностей
1 211
Баллы
113
@Lord_Alfred, У нас с вами разные представления об удобстве.
То, что я предлагал больше трех лет назад, гораздо удобнее и интуитивнее для пользователя не владеющего кодом. Никакого подключения/сопоставления переменных и каких-то там библиотек. Всё наглядно. Но это уже неважно.
 
Последнее редактирование:

DmitryAk

Client
Регистрация
14.12.2016
Сообщения
864
Благодарностей
792
Баллы
93
То, что я предлагал больше трех лет назад, гораздо удобнее и интуитивнее для пользователя не владеющего кодом.
Да, это тоже очень удобная вещь была бы. Трудная для повторного использования, но для одного шаблона и представления - было бы здорово. По факту это аналог фолдинга в редакторах кода, но для кубиков.
 

zortexx

Client
Регистрация
19.09.2011
Сообщения
2 524
Благодарностей
1 211
Баллы
113
Да, это тоже очень удобная вещь была бы. Трудная для повторного использования, но для одного шаблона и представления - было бы здорово. По факту это аналог фолдинга в редакторах кода, но для кубиков.
Я довольно часто копирую конструкции из проекта в проект. Остается назначить переменные, или проверить корректность их использования и в путь. Разработка готовыми модулями занимает гораздо меньше вреиени.

UPD.: Есть блок трансформации изображения, или текста, или кусок для генерации семантики. Во внутренней логике ничего не меняется. Нужно подать переменную на вход и забрать на выходе. В ПМ все потроха и внутренние связи копируются из проекта в проект с сохранением структуры вообще без проблем. Главная проблема - выделить нужные экшены/кубики. А с группировкой эта проблема решается. Так что никаких трудностей с повторным использованием :-)
 
Последнее редактирование:

DmitryAk

Client
Регистрация
14.12.2016
Сообщения
864
Благодарностей
792
Баллы
93
Я использовал такой подход. Для меня он оказался неудобным. Замена логики после копипаста в десятке проектов - это ад.
Мне, опять таки повторяюсь мне.. ибо все ИМХО, оказалось удобнее кубиковый кусок переписать на код, сделать из него вызываемую функцию/класс/итд, вынести сначала в общий код, а потом вообще в подключаемую библиотеку. Причина - удобная инкапсуляция, отлаженность результирующего куска, отсутствие кучи переменных в зеннопроекте, доступность из любых проектов, возможность один раз исправить класс/функцию в библиотеке и не править все проекты, только заменить библиотеку в ExternalAssemblies и все проекты её подхватят (если не менялось определение функций конечно).
 
  • Спасибо
Реакции: Koqpe

zortexx

Client
Регистрация
19.09.2011
Сообщения
2 524
Благодарностей
1 211
Баллы
113
Я использовал такой подход. Для меня он оказался неудобным. Замена логики после копипаста в десятке проектов - это ад.
Мне, опять таки повторяюсь мне.. ибо все ИМХО, оказалось удобнее кубиковый кусок переписать на код, сделать из него вызываемую функцию/класс/итд, вынести сначала в общий код, а потом вообще в подключаемую библиотеку. Причина - удобная инкапсуляция, отлаженность результирующего куска, отсутствие кучи переменных в зеннопроекте, доступность из любых проектов, возможность один раз исправить класс/функцию в библиотеке и не править все проекты, только заменить библиотеку в ExternalAssemblies и все проекты её подхватят (если не менялось определение функций конечно).
Это бесспорно. Код удобнее во многом.
Я отвечал вот на эту реплику:
8<---------------------------
Ну это вот нам, кто понимает код - удобнее скопипастить что-то или подрубить либу и использовать её :-)
А тем кто в коде не разбирается - всегда было и будет удобнее с интерфейсом кубиков работать и ничего в этом плохого нет))
8<---------------------------
 

ibred

Administrator
Команда форума
Регистрация
04.04.2015
Сообщения
3 658
Благодарностей
3 192
Баллы
113
P.S.: хотя нет, поправлюсь: вообще в них смысла нет. Также как и в функции проект в проекте, - кодом удобнее.
Если Вы не пользуетесь этой функцией или не нашли ей применение, это не значит, что она никому не нужна. Кроме Вас программой пользуется ещё 15 тыс. пользователей, большинство которых новички и код для них - сказочное животное. ZennoPoster разрабатывается с учётом пожеланий, как начинающих, так и продвинутых пользователей с разными потребностями, поэтому лишних функций здесь нет.
Я довольно часто копирую конструкции из проекта в проект.
Главная проблема - выделить нужные экшены/кубики.
Сделайте из этих экшенов плагин и у Вас не будет таких проблем. :-)
 

DmitryAk

Client
Регистрация
14.12.2016
Сообщения
864
Благодарностей
792
Баллы
93

ibred

Administrator
Команда форума
Регистрация
04.04.2015
Сообщения
3 658
Благодарностей
3 192
Баллы
113
..а будут другие!
ps: сорри, не удержался))
Будет всего один, вместо десятка :dm:
Плюс его удобно добавлять в проект - один клик из контектного меню.
Если удобнее использовать C# код, пожалуйста, никто же не запрещает :-) Плагины еды не просят, место на экране тоже не занимают.
 

DmitryAk

Client
Регистрация
14.12.2016
Сообщения
864
Благодарностей
792
Баллы
93
Если удобнее использовать C# код, пожалуйста, никто же не запрещает :-) Плагины еды не просят, место на экране тоже не занимают.
Вы не поняли, я за плагины, но только не в текущей реализации)
 

zortexx

Client
Регистрация
19.09.2011
Сообщения
2 524
Благодарностей
1 211
Баллы
113
Если Вы не пользуетесь этой функцией или не нашли ей применение, это не значит, что она никому не нужна. Кроме Вас программой пользуется ещё 15 тыс. пользователей, большинство которых новички и код для них - сказочное животное. ZennoPoster разрабатывается с учётом пожеланий, как начинающих, так и продвинутых пользователей с разными потребностями, поэтому лишних функций здесь нет.
На данный момент меня это уже мало волнует. Нет не только лишних, но и улучшающих удобство пользования продуктом/разработку.
С какой то точки зрения, это даже хорошо, потому что начинающему пользователю довольно тяжко разобраться, а для меня, как для разработчика шаблонов - это неиссякаемый поток клиентов, которые готовы ждать в очереди, чтобы получить заветный шаблон.

Сделайте из этих экшенов плагин и у Вас не будет таких проблем. :-)
Как только появится полноценная реализация, которая будет работать везде, я обязательно подумаю на эту тему
 

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 889
Благодарностей
3 648
Баллы
113
Кроме Вас программой пользуется ещё 15 тыс. пользователей
Можно в дальнейшем ссылаться на эту цифру или это субъективно-оценочное восприятие? :-)

@Lord_Alfred, У нас с вами разные представления об удобстве.
То, что я предлагал больше трех лет назад, гораздо удобнее и интуитивнее для пользователя не владеющего кодом. Никакого подключения/сопоставления переменных и каких-то там библиотек. Всё наглядно. Но это уже неважно.
Да, скорее всего разные :-) Потому что мне ваша идея, если честно, не очень нравится))) У меня всё тоже самое выполняют "проект в проекте", только они ещё и реюзабельные получаются, без надобности изменения чего-то в 10 шаблонах (если что-то сломалось, то фиксим только в подпроекте, родительские проекты это априори подтянут, а в вашем случае - нужно во всех родительских фиксить :( ).
 

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