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

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

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

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

    [+] [-]
В версии Launcher-OWNER.exe почему то не работает перенос строки или многостроковый текст, не знаю как сказать, вообщем если длинное название, то текст уходит за край кнопки, а не переносится на вторую строку, в версии LauncherXYWH-UDLR_Uni.exe все нормально работает, можно ли это исправить или я может не разобрался, подскажите пожалуйста
Добавлено через 6 минут 58 секунд:
Как сделать шрифт на кнопке жирным в версии Launcher-OWNER.exe

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

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

    [+] [-]
mat.86, в этой текст рисуется функциями рисования, поэтому такую фичу надо делать вручную. Лень заморачиваться, и времени нет.

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

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

    [+] [-]
Обновление
Добавлен флаг single_instance - запускать одну копию программы.
Исправление ошибки (найдено Петром и breeze4me). Падение при отсутствии exe-файла в относительных путях с компилятором C-Backend.
Добавлен пункт меню "Открыть Ctrl+Shift+E".

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

    strelec
  • 28466
  • Стаж: 4 года 10 месяцев
  • Сообщений: 42
  • Репутация:1

    [+] [-]
aa Добрый день!
Суть обращения за помощью в следующем.
Поместил в оболочку *.mp4-файлы, но они, как правило открываются плеером, установленном на компьютере по умолчанию. Можно ли, и если можно, то как сделать, чтобы они открывались портативным плеером, в моем случае это [Media Player Classic Home Cinema (MPC-HC) 2.7.1.0] внедренном в оболочку.
Можно ли в INI-файле прописать и что, чтобы видео-файлы проигрывались указанным выше плеером.
Спасибо! ax

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

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

    [+] [-]
strelec, можно написать регулярное выражение, которое заменит строки начинающиеся с path= и заканчивающиеся mp4 на путь к проге, а в аргумент вставит путь к mp4. Можно конечно сделать 2 диалоговых окна, в одном из которых указать расширение файла, а в другом путь к проге и выполнится подмена, надо подумать, сам движок регвыр не хотелось бы вставлять в прогу.

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

    strelec
  • 28466
  • Стаж: 4 года 10 месяцев
  • Сообщений: 42
  • Репутация:1

    [+] [-]
AZJIO, спасибо за оперативность, вселяет уверенность возможность осуществления задуманного. Будем экспериментировать. ay

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

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

    [+] [-]
strelec, Я чуть перепутал, думал тема LauncherLV и добавил туда, а в LauncherPB можно сделать замену регулярным выражением используя мой RegExpPB.
Найти:
^exe\h*=(.+?\.mp4)
заменить:
exe=свой_путь
arg=\1
В окне RegExpPB поставить галочки "Многострочный текст" и "Замена" и рядом с галочкой "Замена" поставить ещё две галочки - поддержка групп и поддержка \r\n (там всплывающие подсказки). Ну и естественно конфиг бросить в верхнее окно, а результат получить в нижнем окне.
Хотя можно было бы написать какой-нибудь редактор пунктов как самостоятельную программу, но пока лень.

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

    strelec
  • 28466
  • Стаж: 4 года 10 месяцев
  • Сообщений: 42
  • Репутация:1

    [+] [-]
AZJIO, Здравствуйте!
Спасибо за подсказку. Буду разбираться. С наскоку не получается, пишет - Input data is empty.
Хотя можно было бы написать какой-нибудь редактор пунктов как самостоятельную программу
Было бы не плохо. По себе знаю всегда не хватает времени, а задумок масса. Истинный профессионал работает даже когда спит.
Спасибо.
PS Я тут написал батник
@echo off
start "" "%~dp0..\MPC-HC-x64\mpc-hc64.exe" "AAA.mp4"
,
правда из папки, где видео, все срабатывает четко (Запускается плеер, а затем и видео), а вот с Launcher.ini запускается только плеер. УВЫ... aq

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

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

    [+] [-]
106979С наскоку не получается
Может путь надо в кавычки? Аргументы без кавычек с пробелами разделяются на части по пробелу и получается много странных параметров вместо пути и плеер естественно не понимает что ему подсунули.

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

    vovan1982
  • 214
  • Стаж: 11 лет
  • Сообщений: 1191
  • Репутация:84

    [+] [-]
  • Откуда: Ростов-на-Дону
strelec, есть такая проблема (столкнулся с ней при добавлении Repack.exe от Nikzzzz). Нужно создать ярлык и прописать в нем команду запуска. А в лаунчере указать путь к яплыку.

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

    strelec
  • 28466
  • Стаж: 4 года 10 месяцев
  • Сообщений: 42
  • Репутация:1

    [+] [-]
AZJIO, vovan1982, Спасибо за участие. А ларчик просто открывался!
Допустил опечатку, глаз замылился
@echo off
start "" "%~dp0..\MPC-HC-x64\mpc-hc64.exe" "AAA.mp4"
а надо
@echo off
start "" "%~dp0..\MPC-HC-x64\mpc-hc64.exe" "%~dp0\AAA.mp4"
Всё запускается с [Launcher.exe, Launcher.ini]
Спасибо! ax

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

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

    [+] [-]
strelec, а почему не:
exe=MPC-HC-x64\mpc-hc64.exe
arg=AAA.mp4
Проверил, не работает, надо исправить, чтобы текущие пути работали. И может добавить переменную типа %LauncherRoot%, чтобы прямые пути вставлял.

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

    strelec
  • 28466
  • Стаж: 4 года 10 месяцев
  • Сообщений: 42
  • Репутация:1

    [+] [-]
AZJIO, так тоже проверял
exe=MPC-HC-x64\mpc-hc64.exe
arg=AAA.mp4
Плеер запускается, а видео НЕТ!
Решил остаться на:
@echo off
start "" "%~dp0..\MPC-HC-x64\mpc-hc64.exe" "%~dp0\AAA.mp4"
Сколько видео, столько и простеньких CMD-шников, запускаемых из *.INI. Приемлемо

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

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

    [+] [-]
strelec, это мой косяк, я не считаю относительные пути какой-то проблемой, которую нельзя решить. Я недавно исправлял косяк в функции, которая приводила к падению лаунчера, она то исправлена, но возможно частично привнесла проблему. Да и я не тестировал прям во всех вариантах, если бы кто отписал проблему, то может давно бы исправил. Я принципиально стремился к тому, чтобы лаунчер распознавал прямые и относительные пути. В этом нет ничего сложного, если 2-й и 3-й символ является ":\" то это абсолютный путь. Если в пути нет наклонной черты "\", то это файл лежащий в корне, если нет ":\", но есть "\" то это относительный путь. Возможно перед проверкой удалить префиксы начинающиеся с \ в начале пути, чтобы не получить ложный результат для "\файл". Всё вот так вот просто, я даже не говорю про сложные комбинации типа "..\файл" для поднятия на уровень вверх, даже их можно победить. Также WinAPI-функция PathFindOnPath() может получить полный путь в окружении %PATH%, а ExpandEnvironmentStrings_() раскрыть переменные вида %temp%. Так что с путями можно творить что угодно и если это не работает, значит нужно просто исправить.

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

    strelec
  • 28466
  • Стаж: 4 года 10 месяцев
  • Сообщений: 42
  • Репутация:1

    [+] [-]
AZJIO, не буду петь дифирамбы, но возможности Вашей оболочки, не побоюсь этого слова, бесконечны. Все учесть невозможно, кому что вбредет в голову! Но оболочка очень удачная. Пользуюсь ею практически с момента её появления, за что огромное Вам спасибо! Век живи - век учись!
Успехов Вам. ax

Страница 33 из 33


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

Текущее время: 30-Май 00:32

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


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