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

    AZJIO
  • 17953
  • Стаж: 6 лет 1 месяц
  • Сообщений: 1269
  • Репутация: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 раз(а)

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

    mat.86
  • 14134
  • Стаж: 7 лет 9 месяцев
  • Сообщений: 225
  • Репутация:1

    [+] [-]
Лайфхак ah . Извлекать иконки можно с помощью 7zip, просто открываете нужный файл архиватором 7zip (можно правой кнопкой на нужном файле и через контекстное меню - 7zip - открыть архив) все иконки будут в папке icon. И вытягиваете нужную или всю папку ab

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

    Valerkan
  • 14556
  • Стаж: 7 лет 7 месяцев
  • Сообщений: 83
  • Репутация:7

    [+] [-]
sergeysvirid, aa Спасибо, закинул в папку LauncherXYWH. В LauncherXYWH-UDLR_Uni_x86 и LauncherXYWH-UDLR_Uni_x64 теряется цвет рамки активной кнопки, если долго нажимать стрелки на клавиатуре. В LauncherXYWH-UDLR_Uni не теряется.

Посмотрите видео:

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

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

    [+] [-]
  • Откуда: Грузия, город Рустави
91759В LauncherXYWH-UDLR_Uni_x86 и LauncherXYWH-UDLR_Uni_x64
aa Приветствую. Зачем плодить две разрядности, по отдельности, когда один, к примеру LauncherXYWH-UDLR_Uni, как и простой, без навороток, для кого размер, даже в мизерных килобайтах имеет значение, ну для тех, у кого компьютер 1995 года, Launcher прекрасно поддерживает обе архитектуры... Вот не понимаю, стоит ли заморачиваться лишний раз с _x64...


Последний раз редактировалось: rezorustavi (2022-01-12 17:30), всего редактировалось 7 раз(а)

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

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

    [+] [-]
  • Откуда: 65 регион (GMT+11)
91759В LauncherXYWH-UDLR_Uni_x86 и LauncherXYWH-UDLR_Uni_x64 теряется цвет рамки активной кнопки, если долго нажимать стрелки на клавиатуре. В LauncherXYWH-UDLR_Uni не теряется.
Valerkan,
Приветствую! aa
Я всего лишь скомпилировал исходник (\Source\New\LauncherXYWH-UDLR.pb)
Наверное AZJIO что-то позже подправлял в этом плане, а исходник в архиве не обновил. Я не знаю почему так... bn

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

    mat.86
  • 14134
  • Стаж: 7 лет 9 месяцев
  • Сообщений: 225
  • Репутация:1

    [+] [-]
91760
91759В LauncherXYWH-UDLR_Uni_x86 и LauncherXYWH-UDLR_Uni_x64
aa Приветствую. Зачем плодить две разрядности, когда один LauncherXYWH-UDLR_Uni поддерживает обе... Вот не понимаю, нафига заморачиваться с _x64...
Чтоб загрузить разработчика am

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

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

    [+] [-]
sergeysvirid, LauncherXYWH-UDLR.pb не обновлял. Перезалил, последние исходники вставил (2 параметра размер и x32/64) и вариант с API, недоделка но кому интересно посмотреть.

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

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

    [+] [-]
  • Откуда: Грузия, город Рустави
91763Чтоб загрузить разработчика
aa Вот, вот. Но, видимо не понимают некоторые люди, сколько времени и нервов надо разработчику потратить на мартышкин труд, имею ввиду 32-ух битку отдельно, x64 отдельно... А это колоссальная работа. Дай Бог уважаемому AZJIO терпенья и крепкого здоровья. Человек прислушивается к каждому совету и от души старается угодить.

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

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

    [+] [-]
sergeysvirid, я на 5.72 компилирую

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

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

    [+] [-]
  • Откуда: 65 регион (GMT+11)
AZJIO,
Я знаю, у меня нету 5.72, есть только 5.70 bk

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

    Valerkan
  • 14556
  • Стаж: 7 лет 7 месяцев
  • Сообщений: 83
  • Репутация:7

    [+] [-]
91760Зачем плодить две разрядности, по отдельности...
91763Чтоб загрузить разработчика
Чтобы можно было запустить Launcher_x64 в WinPEx64 без поддержки x86, так как Launcher_x86 не запустится...

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

    mat.86
  • 14134
  • Стаж: 7 лет 9 месяцев
  • Сообщений: 225
  • Репутация:1

    [+] [-]
91773
91760Зачем плодить две разрядности, по отдельности...
91763Чтоб загрузить разработчика
Чтобы можно было запустить Launcher_x64 в WinPEx64 без поддержки x86, так как Launcher_x86 не запустится...
Понятно что бывают какие то задачи где это будет нужно. Но без этого можно обойтись, не знаю задач где можно использовать WinPE х64 без подсистемы х32, разница в размере вроде бы не такая и большая

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

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

    [+] [-]
Обновлено
Launcher_Uni теперь есть в корне папке и в нём отсутствуют модули графики, поэтому его размер 84 кб.
Опять убраны неактуальные сборки и оставлены более релевантные.
Обновлён алгоритм рисования рамки и оптимизирован. Мне подсказали функцию RedrawWindow и оставалось лишь оптимизировать выбранную логику. Все последние обновления встроены во все компиляции exe-файлов (BitsHide = 32, TestSize=0). Универсальность Launcher_Uni ещё состоит в том, что если указать BorderW = 0 то функционал рисования рамки будет отключен.

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

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

    [+] [-]
  • Откуда: Грузия, город Рустави
91783Все последние обновления встроены во все компиляции exe-файлов
aa Приветствую. Благодарю за труды. ay

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

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

    [+] [-]
Была идея нарисовать рамку на кнопке, и казалось это экономичнее, так как контекст устройства для кнопки по площади меньше чем контекст устройства окна, хотя запуская версию с поддержкой рамки и без рамки, в памяти у меня занимает 1,8 Мб в обоих случаях, а с картинкой зависит от размера картинки 2,4 - 5,2 Мб (картинка даже если jpg, она в памяти будет bmp, то есть jpg это сжатие для файла, а не для просмотра).
Но попытка нарисовать на кнопке выяснилось что кнопку надо переключить на BS_OWNERDRAW, то есть собственное рисование, в этом режиме кнопка просто пустой квадрат (без текста) и если перейти на этот режим кнопка перестанет быть привязанной к теме, если у пользователя чёрная или жёлтая тема оформления, то кнопка останется такой, какая она была нарисованной изначально. Получается что для кнопки придётся изначально все фигуры которые будут на ней нарисованы вынести в настройки. В принципе не так много цвет фона, цвет рамки, цвет текста, взяв по умолчанию эти цвета из системных. Но в темах оформления бывает что кнопка это растягивающийся рисунок в виде градиентных переходов чтобы сделать её выпуклой, вот этот стиль уже потеряется. Из добавочных вычислений там только иконку центрировать по высоте (ptop=(BtnW-iconW)/2) и отступ слева задать. Не требуется переписывать весь код, надо только переписать функцию создания кнопки, то есть вызвать функцию рисования, в которой задать функции отрисовки кнопки.
Перезалил, добавил Launcher-OWNER с параметрами
BCbg=444444
BCbg2=222222
BCtxt=dddddd
BCtxt2=FF8800

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

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

    [+] [-]
  • Откуда: 65 регион (GMT+11)
91820
Перезалил, добавил Launcher-OWNER с параметрами
BCbg=444444
BCbg2=222222
BCtxt=dddddd
BCtxt2=FF8800
AZJIO,
Приветствую! aa
Спасибо большое за новшества в лаунчере! az ay
Расшифровка по параметрам относящиеся к контуру, цвету кнопки и цвету текста на кнопке:
; Толщина контура активной кнопки
BorderW=3
; Цвет контура активной кнопки (бледно-синий)
BorderColor=afeeee
; Фон кнопки (тёмно-серый)
BCbg=444444
; Фон кнопки по клику (синий)
BCbg2=0000ff
; Цвет текста на кнопке (светло-серый)
BCtxt=dddddd
; Цвет текста на кнопке по клику (жёлтый)
BCtxt2=ffff00
AZJIO, всё верно? ab

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


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

Текущее время: 20-Апр 11:02

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


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