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

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

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

    korsak7
  • 107
  • Стаж: 10 лет
  • Сообщений: 1063
  • Репутация:62

    [+] [-]
а где выдают LauncherXYWH.exe? сельпо то хде?

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

    SergeyZV
  • 528
  • Стаж: 10 лет
  • Сообщений: 1259
  • Репутация:34

    [+] [-]
91331а где выдают LauncherXYWH.exe? сельпо то хде?
Скачай последний архив и покопайся в папках. ae

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

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

    [+] [-]
rezorustavi, не запускается лаунчер именно LauncherXYWH если дублируется группа. В стандартном Launcher выдаётся сообщение о том что дублируется, а в LauncherXYWH нет, да ещё зависает и использует проц на 100%, проверять не надо. Завтра смогу исправить.
И ещё думаю избавлюсь от необходимости делать кнопки с координатами последними.

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

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

    [+] [-]
  • Откуда: Грузия, город Рустави
AZJIO,
aa Спасибо за внимание. ay az

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

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

    [+] [-]
SergeyZV,
Наскока я не знаю PureBasic (но точно видел как делают другие мастера) - есть вот такой финт.
Можно cделать чтоб экзешник запускался с разными кодами запуска.
То есть "LauncherPB.exe код запуска"
В зависимости от этих кодов программа запускается с разным функционалом.
Это ведь можно использовать как вариант замены\дополнения ini файла ...
Это опция применима и к отключению сервиса.
Но все таки такой функционал я б вынес из лаунчера в внешний опциональный модуль
ah
Так и волки будут целы и овцы сыты

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

    UserX
  • 667
  • Стаж: 10 лет
  • Сообщений: 859
  • Репутация:40

    [+] [-]
91339 Можно cделать чтоб экзешник запускался с разными кодами запуска.
То есть "LauncherPB.exe код запуска"
Так это разве финт? Куча программ имеют ключи в командной строке. Получение того же хелпа (ключ - "/?"), например. Такое, вроде, называется в ОС "разбор командной строки" (во всяком случае, так когда-то называлось).
Хотя да, запуск с ключами (разным юзерам - разные ключи) вполне решает эти вопросы.
Самый простой вариант - без ключей. Далее, в зависимости от продвинутости юзера, варианты с ключами.
Кстати, в инюшнике можно поставить параметр запрет/разрешение разбора командной строки. Ну, типа, ComString = Enable/Disable и по умолчанию сделать Disable. А продвинутый юзер всегда сможет разобраться и поменять на Enable.

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

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

    [+] [-]
91340Так это разве финт
Ну может криво выразился, но ведь смысл понятен ...
Просто в тех прогах, которыми я пользуюсь и которые на PureBasic,
я этими ключами пользуюсь вовсю на практике.

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

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

    [+] [-]
SergeyZV, какой бы вариант не был предложен, это всё одно и тоже — скрытое изменение системы. Проблема не в том чтобы добавить, а в том, что лаунчер будет изменять настройки ос без спроса. Я предложил с сообщением. Самый худший вариант отправить уведомление в трее, при чем при закрытии лаунчера снова запустить.

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

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

    [+] [-]
Обновил что хотел.
1. При дубликате секции-кнопки в ini выдаёт сообщение, чтобы исправить с указанием имени дублирующей секции.
2. Кнопки с координатами могут располагаться в любом порядке вперемешку, то есть внутри программы кнопки получат нужный индекс в необходимом порядке.
Проверил любой порядок кнопок, а)в начале, б)в конце, в)в перемешку, г)только одни координатные, д)только одни автозаполняемые. Во всех случаях работает нормально.

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

    Akkar1s
  • 15293
  • Стаж: 8 лет 3 месяца
  • Сообщений: 68
  • Репутация:0

    [+] [-]
Можно ли сделать выбор цвета "шапки" не зависимо от настроек винды (персонализации), чтобы было?

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

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

    [+] [-]
91353Можно ли сделать выбор цвета "шапки" не зависимо от настроек винды (персонализации), чтобы было?
Стиль Win98 сделать?
Обновил
Исправил неправильный расчёт высоты при неодинаковом числе кнопок в колонках, это заметно при 3 или 5 кнопок с 2 колонками, округление должно было быть к верхнему значению, то есть если 2 и 3 кнопки в рядах, то приниматься большее - 3, а не 2, иначе 3-я кнопка выезжает за пределы окна, так как 2 кнопки уже занимают рабочее пространство. Это не проявляется если в колонках одинаковое число кнопок или кнопок много и погрешность мала.
В качестве конфига LauncherJPG_x64.exe сделан пример с прыжками в реестр
exe=cmd.exe
arg=/c (taskkill /im regedit.exe & REG ADD HKCU\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit /v LastKey /d HKCR\Directory /f & regedit.exe)
Может ещё потом какие нибудь идеи будут чтобы сделать разношёрстные практичные конфиги, чтобы показать возможности использования.

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

    Akkar1s
  • 15293
  • Стаж: 8 лет 3 месяца
  • Сообщений: 68
  • Репутация:0

    [+] [-]
AZJIO, Почему стиль 98? обычный выбор цвета заголовка окна.

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

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

    [+] [-]
91364AZJIO, Почему стиль 98? обычный выбор цвета заголовка окна.
В 98 задавался цвет заголовка окна темой, для XP была функция отключения темы что автоматом подключало стиль 98 и возможно там можно было задать тему окна так как темы лежали в системой папке. А в 10-ке используется глобальный цвет для всех и если кто-то применяет темы для окна так там такой код сразу мегабайт к проге прибавится и меняется целиком стиль окна и я так понимаю что там рисуется тема поверх элементов. По крайней мере я ни в AutoIt3 ни ещё где либо не видел такой функции чтобы можно было переключить цвет заголовка, а в 7-ке вообще применяется тема в виде картинки, окантовка окна сама имеет контрастные линии переходящие в заголовок, это не просто цвет заголовка.
Перезалил, добавил в справку забытые "BtnAlign=" и варианты стилей окна/заголовка.

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

    Akkar1s
  • 15293
  • Стаж: 8 лет 3 месяца
  • Сообщений: 68
  • Репутация:0

    [+] [-]
AZJIO, просто такое попалось на глаза с вшитым в окно, может не цветом , а как наложение картинки сверху определенного размера можно сделать?

Картинка

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

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

    [+] [-]
Можно ли сделать поддержку *.png-файлов в качестве фона?

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


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

Текущее время: 21-Апр 01:51

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


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