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

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

    [+] [-]
90871
90867По моему не нужно, лучше кнопка ибо клавиатурой не все пользуются, а без мышки не куда.
мышеблудец ag
Аякже. А вы из этих - "ручками надо, все ручками" ? ag
Добавлено через 2 минуты 31 секунда:
90872
90870могу позже сделать копию проги с админ-правами
Не запуск лаунчера с админ-правами, а программ из под лаунчера с админ-правами.
А что права не делигируются на все запущенные программы? Просто сейчас не на чем проверить

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

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

    [+] [-]
90865
TopX=100
TopY=150
Добавил, только
FormX = 10
FormY = 10
Думаю можно из одного окна открыть 8 окон со всех сторон, располагая их вплотную как плитку.
Добавил BtnAlign = 256 в [gui] чтобы выровнять текст на кнопках влево, 8192 - многостроковый, 512 вправо. Проблема если выравнивать слева то слишком близко к иконке, делаю отступ 10 вместо 3, стало красиво, но если переключить по центру, то центр немного справа получается, по итогу вроде как отступ тоже надо выносить в настройки. Для многострокового варианта надо использовать ~ тильду как перенос строк, она заменится на CRLF, но тоже не понятно будет ли это нужно кому.
SergeyZV, а зачем от админа? сами проги если им надо просят права админа. Я нашёл код, проверил, работает, но я не знаю на сколько это надёжно, так как встроенная RunProgram может открывать файлы в ассоциированных программах, открывать ссылки, а ShellExecute надо тестировать и непонятно какая задача решается, ведь можно запустить лаунчер от админа и дальше запускать прогу от админа.
Добавлено через 50 минут 46 секунд:
90872И ещё что-то типа HIDE=1
Хорошо бы объяснять причины необходимости флага, чтобы я по 2 раза не переделывал. Решил что hide=1 полезен для создания пустышки невидимой кнопки которая тупо разделит одну часть кнопок от другой пустым пространством. Сначала сделал HideGadget(id , #True) чтобы скрыть созданную кнопку, потом пошёл дальше, а зачем её вообще создавать и скрыл её тем что вообще не создал, но идентификаторы то попадают в цикл обработки, тут тоже должно быть всё гладко потому что если идентификатор от этой кнопки никогда не будет получен, то и ошибки не будет, на том и оставил.
По поводу админа тоже добавил admin=1, для кнопки и она будет с использованием ShellExecute + RunAS.
Ещё раз исправил правильность расположения кнопок, из-за раздела [gui] в ini-файле число кнопок рассчитывалось не правильно, сейчас сделан игнор [gui].
Добавил CHM-файл

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

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

    [+] [-]
90894Хорошо бы объяснять причины необходимости флага hide=1
Запуск cmd, bat, exe в скрытом (тихом) виде. Как в SFX hidcon (Скрывает консольные окна. Например: выполнит "install.cmd" и полностью скроет его консольное окно.)

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

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

    [+] [-]
90894Решил что hide=1 полезен для создания пустышки невидимой кнопки которая тупо разделит одну часть кнопок от другой пустым пространством.
и это хорошо!
Запуск cmd, bat, exe в скрытом (тихом) виде - делаем батник, где используем подобный hidcon ..

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

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

    [+] [-]
90902делаем батник, где используем подобный hidcon
Не лучший способ. Если функция будет встроена - 100% будет лучше.

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

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

    [+] [-]
SergeyZV, друг, ИМХО! .. лаунчер нужен для создания удобного меню и запуска или выполнения неких функций по выбору пунктов этого меню.
и всё! пусть он будет компактным, быстрым и простым!
а ты подталкиваешь автора на создание некоего комбайна .. зачем?
пусть автор финализирует лаунчер .. мы его дружно скачаем и начнем пользоваться.
а потом - пусть делает некие фичи и нюансы ag
AZJIO, кнопка с hide=1 - пустое место
попробовал сделать так:
name=Программы для работы с реестром
hide=1
name - игнорируется .. а хотелось бы ..
и еще .. выход по кнопке Esc - тоже хотелось бы ah

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

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

    [+] [-]
90904пусть он будет компактным
Hidcon.exe весит 2048 байт. А если встроить его функцию, то потяжелеет лаунчер незначительно.
И быстрым останется как и прежде. ay
90904выход по кнопке Esc
пусть он будет компактным, быстрым и простым! av ab

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

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

    [+] [-]
  • Откуда: Грузия, город Рустави
90871переменная битности - это, наверное, излишки ..
aa Вполне согласен. Лучше сделать как в старом, один ланчер с поддержкой обоих битностей.
Добавлено через 3 минуты 56 секунд:
90903Если функция будет встроена - 100% будет лучше.
aa Поддерживаю. ay

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

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

    [+] [-]
90907один ланчер с поддержкой обоих битностей.
32-x битный лаунчер так и работает.

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

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

    [+] [-]
  • Откуда: Грузия, город Рустави
9090832-x битный лаунчер так и работает.
Ясненько, тогда в чем привилегия x64 лаунчера?

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

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

    [+] [-]
90909тогда в чем привилегия x64 лаунчера?
Не нужно использовать Wow64=1.
Или использовать в среде восстановления.

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

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

    [+] [-]
90906Hidcon.exe весит 2048 байт
в модифицированном модуле 7zip он есть. пользуйся!
Добавлено через 1 минута 31 секунда:
90909тогда в чем привилегия x64 лаунчера?
ты можешь сочинять ini-файл для лаунчера более 4 терр! ag

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

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

    [+] [-]
90911в модифицированном модуле 7zip он есть. пользуйся!
А ты кнопкой ESC. Клавкатык! af
У нас разные представления о идеальном лаунчере. ac

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

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

    [+] [-]
Можно объединить флаги:
warn = 1
exit = 2
hide = 4
admin = 8
в один флаг:
flags = 1 + 2 + 4 + 8
то есть ели указали flags = 3 это означает warn и exit включены, или flags = 9, значит флаги warn и admin включены. Это сделает лишь компактней записи в ini-файле
SergeyZV, вирус на x32 детектируется из-за перенаправления Wow64DisableWow64FsRedirection. Так как на x64 только одна сработка, а как раз на x64 я убирал ненужное перенаправление. Сейчас я уже не убирал, так как лень, но в тот момент разница была именно в этом.
по поводу добавления скрытия и Esc это не увеличит исходник, он либо так и останется 71,5 кб, либо станет 72 кб.
Добавлено через 2 минуты 51 секунда:
wadimus, я разрешил добавлять хоткей Esc на кнопку, например "Выход" или надо чтобы кнопки "Выход" не было, а Esc была?

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

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

    [+] [-]
90913либо станет 72 кб.
Голосую за 72 Kb. ay

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


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

Текущее время: 26-Апр 15:47

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


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