[Цитировать]

    AZJIO
  • 17953
  • Стаж: 6 лет 2 месяца
  • Сообщений: 1284
  • Репутация:126

    [+] [-]
LauncherPB
Скачать

Скриншоты

Последнее обновление:
Добавлено действие по правой кнопки мыши на кнопке, в ini-файл добавляется параметр url=ссылка. Если указана ссылка, то открывает её, иначе открывает исполняемый файл (exe=) в проводнике. Можно указать файл из текущей папки, из системных или прямой путь (C:\...). Раскрытие переменных тут не работает.
Исправление подсказки, не смешивается мультяшная балон с квадратной.
LargeIcon перенесён в глобальные настройки, LargeIcon2 - для кнопок с координатами.

параметры

Параметры ini-файла
[gui]
Title=Launcher - Заголовок окна
icon=launcher.ico - иконка окна
FormX=10 - x-координата окна, если не указаны обе координаты, то по центру
FormY=10 - y-координата окна, если не указаны обе координаты, то по центру
FormWidth=430 - Ширина окна
FormHeight=310 - Высота окна
FormStyle=2156396544 - стиль окна, обычно заголовка. 13107200 - без кнопки "Свернуть", 13107204 - узкий заголовок - панель инструментов, 2156396544 - без заголовка
Picture = Launcher.bmp - картинка
GuiBkColor=3F3F3F - Цвет фона если картинка не найдена
AreaX=90 - x-координата заданной области для кнопок
AreaY=70 - y-координата области
AreaWidth=320 - ширина области
AreaHeight=220 - высота области
Margin=5 - промежутки между кнопок
Columns=2 - число колонок, вертикальных рядов
FontName=Consolas - название шрифта
FontSize=14 - размер шрифта
FontStyle=256 - стиль шрифта
BtnAlign=256 - Выравнивание текста на кнопке (по умолчанию по центру, 256 - слева, 512 - справа, 8192 - многостроковый, 1 - выбранная). Для многострокового тильда "~" используется в качестве переноса строки и заменяется на CRLF.
BtnMinW= - минимальная ширина кнопки
BtnMinH= - минимальная высота кнопки
BtnColor= - пока не используется (цвет кнопки)
Wow64=1 - отключает перенаправление в SysWOW64 для 32-битной программы на ОС x64
Esc=1 - добавляет хоткей Esc для закрытия программы.
TipStyle=1 - задаёт стиль всплывающей подсказки. Может быть суммой флагов 1, 2, 64, где 1 - включает заголовок и иконку, 2 - показывает exe и arg, 64 - мультяшный вид подсказки.
TipWidth=220 - ширина всплывающей подсказки.
TipTime=15 - время отображения всплывающей подсказки.
CRLF=~ - символ переноса используемый в параметрах warntext, hint, в названии кнопки при включенном флаге "многострочный текст". Например "warntext=текст~подсказки" будет 2 строки.
LargeIcon = 1 - Размер иконки, если 1 то 32, если 0, то 16
LargeIcon2 = 1 - Размер иконки для кнопок с координатами
Если данные области Area не указаны, то по умолчанию вся площадь окна.
Если FormX и FormY не указана или оба равны 0, то применяется центрирование окна.
Если не задан Picture, то применяется GuiBkColor, если и он не указан, то стандартное серое окно.
Если FontName не указан, то никакие настройки шрифта не применяются.
Если указан минимальный размер кнопки (чтобы вместился текст) и размер кнопок вычислен меньше минимального, то область Area или окно будет увеличено, а кнопки создаются с минимальным указанным размером.
Кнопки
[6] - название секции не имеет значения, главное чтобы не повторялись
name=Calc - Название программы - отображается на кнопке
hint=Run Calc - Подсказка при наведении мыши
exe=calc.exe - Исполняемый файл, полный путь или относительный
arg=\k - аргументы/параметры для исполняемого файла
hotkey=Alt + q - Горячая клавиша. Если использована, то добавиться в контекстное меню, вызываемое правым кликом мыши.
url=https://... - если указана ссылка, то открывает её, иначе открывает исполняемый файл (exe=) в проводнике. Можно указать файл из текущей папки или прямой путь (C:\...)..
icon=calc.exe - иконка, полный путь или относительный
Admin = 1 - Запускает программу от админа
exit = 1 - Закрывает лаунчер после нажатия кнопки, запуская перед этим программу
hide = 1 - Скрывает процесс, полезно для запуска консольных программ
warn=1 - Показать сообщение с требованием подтверждения операции, если кнопка опасна (перезагрузка и т.д.)
warntext=моя подсказка - при использовании warn задаёт свой текст диалога предупреждения перед запуском. При этом указать warn=2
[7]
name=Выход
exe=Exit - особый случай, если Exit, то закрывает окно ничего не запуская
[8]
bhide=1 - создаёт пустое пространство по размеру кнопки, чтобы визуально разделить кнопки между собой.
Ком-строка
Можно передать программе ini-файл, чтобы открыть копию программы с другим конфигурационным файлом. Указывается имя файла или относительный путь, относительно текущей папки программы.
Различные сборки/компиляции
Launcher.exe - поддерживает только *.bmp-файлы в качестве фона и имеет минимальный размер исполняемого файла. Этот вариант идеален без использования фона.
Launcher-OWNER.exe - Поддерживает цвет кнопок (цвет фона, каймы, шрифта).
LauncherXYWH-UDLR_Uni.exe - поддерживает координаты кнопки, например xywh=5,5,155,40. Позволяет сделать отдельные кнопки, например как кнопки переключения вкладок, при этом загружая иной конфиг. Также можно сделать кнопки с указанием автора сборника или информационная кнопка, указывающая как пользоваться сборником. Аббревиатура UDLR означает выбор кнопок стрелками клавиатуры и Enter. Uni - означает поддержка jpg, gif, png, tga в качестве фона
Стиль шрифта FontStyle поддерживает флаги:
256 - жирный
512 - курсив
4 - подчёркнутый
8 - перечёркнутый
16 - наилучшее качество
просто суммировать флаги, например 264 (256+8) включит соответствующее.
Автовычисление
Можно указать только минимальный размер кнопок и число колонок, при этом размер окна вычисляется автоматически, чтобы кнопки уместились.
BtnMinW = 200
BtnMinH = 44
Columns = 2
Важно учесть, что задавая область кнопок "Area", её размер условный, например при вычислении 10 кнопок на высоте области 335 получим высоту кнопки 33,5 пиксел, но так как пиксел не делится на десятые доли, то размер кнопки будет 33 пиксел, умножаем на 10 кнопок и получаем область кнопок 330, а не 335, конечно с учётом отступом, но они опущены, чтобы показать пример того, что размер области кнопок не будет соответствовать действительности, поэтому когда отступ под кнопками или справа от кнопок не соответствует действительности и выглядит несимметрично, то учитывайте эту погрешность и самостоятельно определяйте правильный размер окна и области кнопок. Если у вас 20 кнопок по высоте и изменение размера кнопки на 1 пиксел провоцирует изменение области кнопок на 20 пикселов Вычислить самостоятельно область кнопок так: высоту кнопки (28) прибавить отступ (2), умножить на число кнопок (20) и прибавить ещё отступ (2) получим высоту области 602, т.е. (28 + 2) * 20 + 2 = 602. Можно было бы делать округление и получить 33 пиксел, потом 37 пиксел вместо 36, но тогда кнопки бы скакали по размерам и по отступам в пределах пиксела и если отступ то 2, то 3 пиксела, это будет выглядеть неприглядно.
Поиск
Используйте Ctrl+F или пункт меню, чтобы быстро найти кнопку по тексту, кнопка будет подсвечена и активирована, достаточно нажать Enter. Вводить достаточно часть слова и даже одну букву, текст проверяется что он есть в названии кнопки без учёта регистра. Если найдено 2 и более кнопок, то выводится сообщения о найденных кнопках и можно указать более точный запрос, при этом первая найденная станет активной. Если ничего не найдено, то сбрасывается активность какой либо кнопки.
Прочее
Если нажать F1 (не удерживая), и после этого кликнуть любую кнопку, то вместо запуска появится диалоговое окно с отображением данных для этой кнопки, которые указываются в ini-файле. Таким образом понятно, что будет запущено, возможно будет важно посмотреть ключи запуска и т.д.
Переменная %%P в параметрах "exe", "arg" заменяется на x86 или x64 взависимости от того на какой ОС запущен лаунчер. Это позволяет запускать exe-файлы взависимости от битности ОС. Определяется по наличию папка SysWow64. А также передаёт переменную окружения %P%. Для примеры можно из лаунчера запустить bat-файл с таким содержанием:
echo %P%
pause


Последний раз редактировалось: AZJIO (2022-02-22 20:44), всего редактировалось 27 раз(а)

[Цитировать]

    AZJIO
  • 17953
  • Стаж: 6 лет 2 месяца
  • Сообщений: 1284
  • Репутация:126

    [+] [-]
Обновления
Исправление подсказки, не смешивается мультяшная балон с квадратной.
LargeIcon перенесён в глобальные настройки, LargeIcon2 - для кнопок с координатами.
Добавлен флаг F1=0 в LauncherXYWH-UDLR_Uni, чтобы исключить вывод подсказки совсем.
Перезалил, включил поддержку DPI.
Перезалил, x64 падал.

[Цитировать]

    rezorustavi
  • 2337
  • Стаж: 8 лет 3 месяца
  • Сообщений: 928
  • Репутация:55

    [+] [-]
  • Откуда: Грузия, город Рустави
AZJIO,
aa Приветствую, огромное Вам спасибо, за обновление! ay

[Цитировать]

    AZJIO
  • 17953
  • Стаж: 6 лет 2 месяца
  • Сообщений: 1284
  • Репутация:126

    [+] [-]
Для теста добавил Launcher-URL, в котором по F2 возле курсора появляется контекстное меню "Открыть url", можно выбрать стрелкой вниз и Enter, открывает ссылку, которая указана параметром url= в секции кнопки.
Как ни пытался не смог придумать правой кнопкой мышки вызвать меню на кнопке. Мне казалось это работает в AutoIt3, но там нет события правой кнопки мыши для кнопки, а примеры которые у меня были они показывают меню по левой кнопки мыши. Допускается двойной клик, то есть могу попробовать на событие двойного клика открывать ссылку. Можно сделать флаг отключения функционала двойного клика, чтобы не создавать ложное срабатывание если автор сборки не хочет использовать эту фичу.
Проверил двойной клик, написав это в функции обратного вызова Callback, но цикл PureBasic ловит двойной клик как два одинарных клика, и чтобы написать функционал придётся много переделывать, то есть писать события кнопок через Callback + BN_CLICKED, оставлю пока как есть.

[Цитировать]

    rekshd
  • 19892
  • Стаж: 5 лет 4 месяца
  • Сообщений: 331
  • Репутация:7

    [+] [-]
Нормально крайняя версия URL отрабатывает ab Открывает соответствующие ссылки.-
Вопрос. Можно ли в группе веделять разные кнопки разным цветом ?
Пример - на вкладке Тестирование крайней версии SysAdmin Software
есть минимум четыре группы утилит по функционалу:
- для работы с дисками,
- для работы с сетью и интернетом,
- для работы с компашками
- архиваторы.
Было б визуально гораздо быстрее найти нужную утилиту из 40,
если бы кнопки утилит каждой группы имели окаймление своего цвета
например
У утилит работы с дисками - красный
У утилит работы с сетью - синий
и т.д.

[Цитировать]

    AZJIO
  • 17953
  • Стаж: 6 лет 2 месяца
  • Сообщений: 1284
  • Репутация:126

    [+] [-]
rekshd, можно попробовать создать 4 стиля, но слишком много придётся выдумывать параметров, а в секции кнопок указывать стиль=1 или 2, 3, 4. Или попробовать группировать параметры типа цвет=цвет1,цвет2,цвет3,цвет4.

[Цитировать]

    rekshd
  • 19892
  • Стаж: 5 лет 4 месяца
  • Сообщений: 331
  • Репутация:7

    [+] [-]
Фактически, нужна единственная переменная, которая будет определять цвет каймы конкретной кнопки ?
А если эта переменная у кнопки не определена\не указана явно, то цвет каймы кнопки типовой - как для всего лоадера ...
ah
Насколько сложно и возможно ли вообще добавить такую переменную ?

[Цитировать]

    AZJIO
  • 17953
  • Стаж: 6 лет 2 месяца
  • Сообщений: 1284
  • Репутация:126

    [+] [-]
Перезалил. Мне помогли примерами и теперь ссылки открываются просто кликом правой кнопки мыши без всяких странных телодвижений. Продвигать эту фичу во все? Мне кажется идея интересная и кроме этого вместо ссылки может быть любой файл, как второе событие, хотя там не обрабатываются раскрытие переменных, флаг админа и т.д., но можно попытаться приспособить к чему либо кроме ссылок.
rekshd, кому-то через час захочется чтобы не только кайма но и фон был другой. А также у кнопки есть цвет нажатия, каймы и фона, а значит он тоже должен по стилю быть близок к не нажатому состоянию, итого на кнопку 4 цвета: нажато/отпущено, фон/кайма. Если делать число цветов по количеству в массиве, то если чел что-то не укажет, брать по максимуму, а неуказанные по умолчанию.

[Цитировать]

    sergeysvirid
  • 104
  • Стаж: 9 лет 4 месяца
  • Сообщений: 2499
  • Репутация:127

    [+] [-]
  • Откуда: 65 регион (GMT+11)
92692но можно попытаться приспособить к чему либо кроме ссылок.
AZJIO,
Приветствую! aa
Например, если кнопка ссылается на запуск *.cmd, *.bat, то по клику пр. кл. мыши по кнопке - открыть в блокноте, а если кнопка ссылается на какой нибудь там *.exe-шник, то по клику пр. кл. мыши по кнопке - открыть расположение файла в проводнике.
Как то так...
А так, сама по себе, идея интересная! ay Можно ведь так что угодно повесить на пр. кл. мыши по кнопке (небольшое контекстное меню с выбором действий было бы вообще в идеале) az

[Цитировать]

    rezorustavi
  • 2337
  • Стаж: 8 лет 3 месяца
  • Сообщений: 928
  • Репутация:55

    [+] [-]
  • Откуда: Грузия, город Рустави
92692Продвигать эту фичу во все?
aa Приветствую. Конечно продвигать. Большое спасибо за труды! ay az

[Цитировать]

    AZJIO
  • 17953
  • Стаж: 6 лет 2 месяца
  • Сообщений: 1284
  • Репутация:126

    [+] [-]
Обновил (Launcher, OWNER, XYWH-UDLR)
Добавлена поддержка url=https... на правый клик мыши, а если ссылки нет, то открывает файл в проводнике. И можно использовать прямой путь C:\.. или файлы в папке лаунчера или в системных папках (%path%), нет раскрытия переменных, т.е. %windir% не сработает.

[Цитировать]

    rezorustavi
  • 2337
  • Стаж: 8 лет 3 месяца
  • Сообщений: 928
  • Репутация:55

    [+] [-]
  • Откуда: Грузия, город Рустави
92710Добавлена поддержка url=https
aa
Если прописано exe=http, то при нажатии правой кнопкой мышы, пишет нет приложения сопоставленного с этим файлом, если нажать левой, открывает как положено ссылку в браузере. Google Chrome у меня по-умолчанию.
Если url=https, то при нажатии левой открывается проводник, если правой, то открывается ссылка. Может быть стоит поменять местами на клик? Для url=https://.... Чтбы входил на сайт по левой кнопки, а не правой...
Видео
[2]
name=Download K-Lite Codec Pack
hint=Загрузка кодеков "K-Lite Codec Pack" с официального сайта производителя.
url=https://codecguide.com/download_kl.htm
icon=Icons\Icons.dll
IndexIcon = -73
LargeIcon = 1
[3]
name=Download Microsoft Visual C++
hint=Пакет Microsoft Visual C++ Redistributable Package устанавливает компоненты среды выполнения библиотек Visual C++, необходимых для запуска приложений, разработанных с помощью Visual C++, на компьютере без установленной среды Visual C++.
exe=http://forum.oszone.net/thread-145766.html
icon=Icons\Icons.dll
IndexIcon = -104
LargeIcon = 1

[Цитировать]

    AZJIO
  • 17953
  • Стаж: 6 лет 2 месяца
  • Сообщений: 1284
  • Репутация:126

    [+] [-]
rezorustavi, ну в принципе можно оставить как есть, поведение соответствует логике.
Параметр url= является не взамен exe= а дополнением, то есть если нужна ссылка на кнопку то ставим
exe=https://codecguide.com/download_kl.htm
при этом если не задать url=, то срабатывает ком-строка
explorer.exe", "/select,"https://..."
Естественно такого файла не будет и эксплорер выдаёт что не определено. Но я подумал, что если в ссылке будут % то функция раскрытия попытается раскрыть путь, но так как вряд ли в ссылке встретится %temp% или иная переменная, то ничего не раскроет и поэтому функция продолжает работать стабильно. Хотя я на секунду подумал, что надо отключить это если ком-строка начинается с http, но вдруг это окажется папкой? Пока пусть как есть.
Пакет "Download Microsoft Visual C++" сработал именно так по причине, что url= нет, а exe= это ссылка. Как решение я вижу что можно оба exe и url сделать ссылку на одно и тоже и проблема решена.
То есть exe= работает и как ссылка и как файл и его не надо исключать заменяя на url, а url он предназначен как дополнительная ссылка к пакету установки и заменять его на exe2 я не хочу, типа чтобы сделать дополнительную патч или ещё что-то, потому что будет путаница, чел никогда не будет знать что там, а обозначая как url это всегда понятно что это предназначено для ссылки (или открытие папки объекта) иначе мне бы пришлось делать обработчики и вносить путаницу. Единственное я могу добавить проверку, если файла не существует, когда explorer.exe пытается открыть ссылку, то ничего не делать, чтобы не было этого сообщения.

[Цитировать]

    rezorustavi
  • 2337
  • Стаж: 8 лет 3 месяца
  • Сообщений: 928
  • Репутация:55

    [+] [-]
  • Откуда: Грузия, город Рустави
92729Как решение я вижу что можно оба exe и url
aa А как их подробно прописать? exe:url exe\url exe/url или как? Пожалуйста подробнее опишите, чтобы было понятно. az

[Цитировать]

    AZJIO
  • 17953
  • Стаж: 6 лет 2 месяца
  • Сообщений: 1284
  • Репутация:126

    [+] [-]
rezorustavi, перезалил, теперь если exe= это ссылка, то правая кнопка мыши не будет работать, так как не будет пытаться открыть несуществующий файл, разве что если url= будет ссылкой то будет открывать её.
92732А как их подробно прописать? exe:url exe\url или как?
exe= должен быть во всех кнопках кроме bhide, а url= может быть только совместно с exe= иначе чел буудет жать на кнопку, а ничего не произойдёт. exe= работает на левый клик мыши, url= работает на правый клик мыши. Должно быть так:
exe=путь_к_программе
url=ссылка_на_сайт_программы
остальные исключения это просто гибкие настройки, то есть exe= может запустить любой файл в ассоциированной программе или ссылку. А url= открывает ссылку, а если нет параметра или пуст, то открывает папку программы, а если не пуст, но не ссылка то если повезёт то откроет файл, точнее повезёт в большинстве, это всего лишь исключение из правил.
Параметр url= предназначен для того, чтобы открыть сайт разработчика этой программы. Если чел захочет обновить прогу или скачать оригинал или почитать иную информацию справку/лицензию/скрины и т.д. Но как вы будете использовать это уже ваше решение, можно например сделать ссылку на новую версию вашей перепаковки, например ваша сборка лежит по пакетам в некоторой папке на яндексе, пользователь перед установкой может кликнуть и посмотреть дату пакета и если она новее, то скачать её и положить взамен той что есть у себя на компе, то есть не скачивать весь, а скачивать то что челу нужно.

[Цитировать]

    rezorustavi
  • 2337
  • Стаж: 8 лет 3 месяца
  • Сообщений: 928
  • Репутация:55

    [+] [-]
  • Откуда: Грузия, город Рустави
AZJIO,
aa Спасибо за пояснение и обновление, так лучше ay az
Добавлено через 11 минут 45 секунд:
92733exe= должен быть во всех кнопках кроме bhide, иначе чел будет жать на кнопку, а ничего не произойдёт.
При bhide кнопка скрыта, так что жать не на что ab
Добавлено через 6 минут 32 секунды:
92733Параметр url= предназначен для того, чтобы открыть сайт разработчика этой программы.
А чем exe=http хуже - url= не могу понять логику, хоть убей. exe=http и так выводит на нужый адрес.

Страница 24 из 32


Показать сообщения:    

Текущее время: 26-Апр 03:00

Часовой пояс: UTC + 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы можете скачивать файлы