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

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

    [+] [-]
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 месяца
  • Сообщений: 1286
  • Репутация:127

    [+] [-]
Обновил
Поступил запрос на то что не перепрыгивает через кнопку с bhide=1, сделал чтобы перепрыгивала, по крайней мере вверх/вниз, а вправо/влево не перепрыгивает но выбирает ниже или выше пустой. А также если колонка последняя то прыгает не в конец, а на первую колонку, а с первой на последнюю если вправо.
Ещё перезалил, для Launcher-Next-Prev добавлен BorderColor=FF8800 цвет границы. Тоже по запросу.
91628TrustedInstaller
Вот переделай

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

    SergeyZV
  • 528
  • Стаж: 9 лет 1 месяц
  • Сообщений: 1313
  • Репутация:34

    [+] [-]
91632Вот переделай
На нет и суда нет.

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

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

    [+] [-]
rezorustavi, LauncherXYWH-UDLR (Up Down Left Right). Переход на дополнительные кнопки делает прямоугольник активной кнопки белым, почему не знаю. Кажется разгадал проблему, кнопки другого размера и сбрасывают фон при трансформации линий (исправил). Тупо перенёс функционал, переходит на блок кнопок с координатами не критично как зашёл, так и вышел.
91633На нет и суда нет.
ты во мне разуверился, трудно работать в такой обстановке, проще принять и не напрягаться. Да и вирусы ополчатся и доступ будет к системе более простой.

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

    wadimus
  • 14910
  • Стаж: 7 лет 5 месяцев
  • Сообщений: 762
  • Репутация:91

    [+] [-]
91633На нет и суда нет.
вынужденно пересматривал старые добрые советские фильмы (как и вся страна).
цЫтата из Обыкновенного чуда:
- Да, я взбунтовался! Я взбунтовался! И Вы вовсе не величайший из королей! А всего лишь выдающийся, да и только!
- Ой..
- Что, съел? Выдающийся, да и только! И вы не по заслугам именуетесь почетным святым. Вы отшельник, подвижник, но не святой. Не святой. Нет.
az

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

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

    [+] [-]
В PureBasic есть функция запроса версии ОС. Можно было бы запретить показ кнопок методом:
os=7
os=<7
os=>7

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

    wadimus
  • 14910
  • Стаж: 7 лет 5 месяцев
  • Сообщений: 762
  • Репутация:91

    [+] [-]
AZJIO, и %%P .. запрет показа кнопок для х86-х64
типа так:
%%P == x64 - кнопка будет в x64 системе
%%P != x64 - кнопки не будет в x64 системе
и аналог
%%P == x86 - кнопка будет в x86 системе
%%P != x86 - кнопки не будет в x86 системе

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

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

    [+] [-]
wadimus, подумаю может и можно сделать, ведь я вполне могу делать игнор групп в ini-файл, но хотелок уже столько что мне за месяц не осилить.
Сейчас пробовал на WinAPI сделать подсветку кнопок. Наверно вы заметили что Launcher-Next-Prev увеличился на 42 кб, потому что использовал 4 объекта "холст", чтобы нарисовать окантовку кнопки, а "холст" - CanvasGadget имеет продвинутые возможности покруче чем ListView, он предназначен чтобы рисовать в нём фигуры и ловит не просто события, а клики мыши правой левой и прочие пару десятков событий, а я его использую чтобы нарисовать фон на нём и с него соорудить линию и из 4-х линий получается рамка. Вот теперь это дело надо сделать на функциях BitBlt() - копирование ранее созданного растрового рисунка, создать одну рамку и просто копировать её на нужную кнопку. Начало.

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

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

    [+] [-]
91675потому что использовал 4 объекта "холст", чтобы нарисовать окантовку кнопки, а "холст" - CanvasGadget имеет продвинутые возможности покруче чем ListView, он предназначен чтобы рисовать в нём фигуры и ловит не просто события, а клики мыши правой левой и прочие пару десятков событий, а я его использую чтобы нарисовать фон на нём и с него соорудить линию и из 4-х линий получается рамка. Вот теперь это дело надо сделать на функциях BitBlt() - копирование ранее созданного растрового рисунка, создать одну рамку и просто копировать её на нужную кнопку
Что-то Подобное делал для шапки одного сайта, токо с помощью Incomedia WebAnimator Plus. Помнится аж 21 слой был ...
Геморно малость. Помнить надо какой клик откуды и куда ведёт, что при этом клике должно опуститься или подняться
aq
Но результат того стоил

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

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

    [+] [-]
  • Откуда: Грузия, город Рустави
AZJIO,
aa Приветствую, рамка очень понравилась, огромное спасибо! Если сможете, сделайте пожалуйста, чтобы рамка появлялась только после нажатия на нужную кнопку, а не при запуске. И возможность менять её цвета, было бы вообще круто. az

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

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

    [+] [-]
rezorustavi, менять цвет уже есть

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

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

    [+] [-]
  • Откуда: Грузия, город Рустави
91685менять цвет уже есть
ay Супер! Не обратил внимание на параметр BorderColor=
По мне так красивее смотрится:
.
BorderColor=9B1C31

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

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

    [+] [-]
rezorustavi, при запуске твоего сборника прог есть некоторая задержка. Возможно из-за доступа к ехе файлам, а с антивирусником еще больше тормозить будет. Как вариант засунуть все иконки в dll принадлежащие одному окну, чтобы он к ехе файлам вообще не обращался в момент запуска.

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

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

    [+] [-]
  • Откуда: Грузия, город Рустави
91693Как вариант засунуть все иконки в dll
Хорошая идея, поробую создать пустышку dll и воткнуть все иконки с помощью ResourceHacker... А после сделать иконки, которые с берет exe файлов. Я такого ни разу не делал, но попробую. Вот как выдрать с exe-шников? Чтобы были 48x48... Пока занялся закидывать иконки, с папки icons:
.
Update:
Скорей всего задержка от большого колличества кнопок, в моем варианте. А плодить больше страниц, тоже не выход из положения.
Update2:
Вроде для пробы собрал иконки с папки Icons в Icons.dll Ссылка
Закинул Icons.dll в папку Icons, указываю так:
[1]
name=Утилиты Windows
hint=Утилиты Windows
exe=cmd
arg=/c (taskkill /im Launcher1.exe /f & Launcher1.exe Launcher14.ini)
hide=1
icon=Icons\Icons.dll
IndexIcon = 291

LargeIcon = 1
А отображается так:
.
Кто сможет разобраться, подскажите пожалуйста в чем мой косяк и как решить проблему. Может быть я не правильно собрал Icons.dll? То как сделать правильно, только подробно пожалуйста. Первый раз с этим связался.

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

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

    [+] [-]
rezorustavi, я на работе, но по конфигу 291 это должно быть 291 иконок. Индекс это порядковый номер отсчет от 0. А если номер ресурса то указывается минус - 291, а может наоборот.

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

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

    [+] [-]
Вот как выдрать с exe-шников? Чтобы были 48x48...
Поможет icofx icofx
Кто сможет разобраться, подскажите пожалуйста в чем мой косяк и как решить проблему. Может быть я не правильно собрал Icons.dll? То как сделать правильно, только подробно пожалуйста. Первый раз с этим связался.
IndexIcon = 291 это номер иконки внутри dll. Можно сделать так на рабочем столе создать иконку любой папки, например ярлык диска с. Далее нажимаешь правой кнопкой на ярлыке далее - свойства - далее вкладка ярлык - далее - сменить значок. Увидишь все значки внутри файла imageres.dll
Не закрывая свойства ярлыка создаешь запись в лаунчере так
[1]
name=Утилиты Windows
hint=Утилиты Windows
exe=cmd
arg=/c (taskkill /im Launcher1.exe /f & Launcher1.exe Launcher14.ini)
hide=1
icon=imageres.dll
IndexIcon = 55
LargeIcon = 1
Запускаешь лаунчер и видишь иконку на первой кнопке. Далее редактируешь первую запись в лаунчере пишешь теперь
IndexIcon = 56
сохраняешь
перезапускаешь лаунчер и видишь другую иконку. А в своствах ярлыка можешь примерно увидеть номер иконки и какой тебе нужен номер.
Вообщем пробуй и походу дела поймешь принцип

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


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

Текущее время: 04-Май 19:56

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


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