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

    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 раз(а)

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

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

    [+] [-]
Добавьте и в х64 версию параметр, иконку для проги брать с длл, а то эта функция только в х86.
И для будущих обновлений если возможно сделать, градиенты шапки выбор цвета, переход с одного на другой.

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

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

    [+] [-]
Все отлично, полет нормальный, AZJIO, большое спасибо ay ar

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

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

    [+] [-]
AZJIO, а можно сделать запуск с недефолтным ini , например:
Launcher.exe Launcher2.ini

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

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

    [+] [-]
91135а можно сделать запуск с недефолтным ini
Можно.
Launcher.exe Launcher2
Без .ini.


Последний раз редактировалось: SergeyZV (2021-12-30 14:10), всего редактировалось 1 раз

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

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

    [+] [-]
91136Можно.
SergeyZV, вы, наверное, изучили этот лаунчер вдоль и поперёк и знаете все его лайфхаки чуть не лучше самого автора! ay

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

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

    [+] [-]
91137знаете все его лайфхаки чуть не лучше самого автора
Это в принципе не возможно. Просто в шапке не всё описано. Нужно прочитать всю тему и поэкспериментировать.

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

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

    [+] [-]
SergeyZV, пасип az
ну так то кэшна в хелпе надо такое прописывать aa

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

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

    [+] [-]
Среда установки windows х64 возможно ли как то в ней запустить 32 битной версии приложения?

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

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

    [+] [-]
На выходных занят был, 2 компа сделал. Еще сообщение добавлял, чтобы при отсутствии ini-файла выдал, что нет его. И пытался сделать, что если включен стиль без заголовка, то включить перетаскивание окна за поверхность, пока не получилось, пример автоит есть, возможно надо еще какой то стиль окну.
91136Без .ini.
Думаю надо сделать с .ini так как это интуитивно
Обновил
Сообщение при отсутствии ini-файл
конфиг в ком строке теперь передаётся с расширением файла
Скомпилированы все exe-файлы x64, GIF. JPG

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

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

    [+] [-]
SergeyZV, опасная тенденция встраивать запуск чего-то автоматически, хотя многие испоняемые файлы подразумевают это. Если только сделать файл типа "Autorun", чтобы было очевидно и на это будет обращено внимание перед запуском.
туда можно добавить несколько секций в том числе параметр задержки между запусками пару сек

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

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

    [+] [-]
SergeyZV, и без сообщения с возможностью отказаться?

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

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

    [+] [-]
91166AZJIO, aa
В GUI ещё бы добавить
exe=
arg=
К примеру отключить службу помощника по совместимости программ или чего-то типа этого.
exe=sc.exe
arg=stop PcaSvc
А зачем? Можно на кнопку повесить и после запуска лаунчера нажать на нее и все выполнится? Что можно нужного поставить в автозапуск лаунчера?

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

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

    [+] [-]
SergeyZV, обычно это называют вирусом, когда кто-то за вас решает что нужно пользователю. А обвинение будет на программу. Теоретически любой sfx-архив может выполнить тоже самое, но в данном случае ответственность ложится на автора SFX-архива, а не на автора архиватора, так как сам архив является исполняемым файлом и будет выполнен, зависит лишь от доверия к автору sfx-архива. В моём случае пользователь запуская лаунчер не ожидает, что не нажав никакой кнопки лаунчер уже выполнит что-либо без согласия пользователя. Одно дело он посмотрит какие есть кнопки и сам будет ответственный за дальнейшие действия, если не доверяет, пусть посмотрит дистрибутивы. Другое дело он ожидает посмотреть предлагаемое меню, а у него производится изменения в системе. Такое не каждому понравится. Поэтому я и предложил, если уж делать что-то автоматически запускаемое на старте лаунчера, то пользователь решает нужно ли ему это. И можно добавить параметр подсказки hint= чтобы автор сборника мог написать свой текст, что он хочет, какие изменения хочет внести. Понятно что можно обмануть, написать "придут 1000р на карту", не важно, но в заголовке что-то в виде "Автозапуск приложения", а в тексте подсказки что угодно. А пользователь прежде чем согласится может посмотреть конфиг или запустит в песочнице или спросит у автора. Но это будет честно, иначе это будет как у майкрософт " мы сами решим что вам нужно", или как ситуация с куками, вышел закон что нельзя встраивать свой движок слежения, а предложить пользователю, чтобы он отказался.

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

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

    [+] [-]
91224обычно это называют вирусом, когда кто-то за вас решает что нужно пользователю.
91226Раз такая боязнь - лучше тогда вообще не делать данную фичу.
Тут наверное нужно исходить из аудитории, для которой делается это приложение.
Если это программа для спецов, которые к тому же знают про портал USBTor и его Авторов, то функцию автозапуска можно оставить.
Если для массового использования неспецами, то лучше автозапуск убрать либо сделать специально включаемым (а по умолчанию выключенным)
Массовый пользователь всяко увидит в такой функции подозрительное ...
Мне так кажется br

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

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

    [+] [-]
91222
91217Можно на кнопку повесить и после запуска лаунчера нажать на нее и все выполнится?
Во первых нельзя на кнопку повесить два задания без командного файла, во вторых нет смысла одно и то же задание повесить на все кнопки.
exe=sc.exe
arg=stop PcaSvc
И хотя бы разберитесь что это за задание. (и такого типа задания могут быть не в единственном варианте)
Добавлено через 1 минута 51 секунда:
91214без сообщения с возможностью отказаться?
В том и смысл.
К примеру что бы уйти от навязчивого окна
https://usbtor.ru/viewtopic.php?p=91118#91118
Я честно говоря нифига не понял. Команда "sc.exe stop PcaSvc" остановить нужную службу, что тут разбираться. Я так понял вы хотите при запуске лаунчера выполнение действия. Я и сказал что стоит написать это действие в первую кнопку? Запустил лаунчер, нажал на первую кнопку, служба остановилась.
В GUI ещё бы добавить
Код:
exe=
arg=
К примеру отключить службу помощника по совместимости программ или чего-то типа этого.
Код:
exe=sc.exe
arg=stop PcaSvc
Где тут про множественные запуски я не понял.

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


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

Текущее время: 20-Апр 15:27

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


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