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

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

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

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

    [+] [-]
rezorustavi, тем что на каждую прогу придется делать 2 кнопки, одну на запуск вторую на сайт, а так всё в одной.
Случайно почитал описание функций EventlParam(), которые позволяют без функции обратного вызова получить lParam и wParam и там есть проверка нажатий клавиш Ctrl и Shift во время нажатия клавиш мыши. Это позволяет на кнопку добавить ещё 3 события, то есть нажатие мыши при нажатой Ctrl, при нажатой Shift и при нажатых обоих клавишах. Грубо говоря можно принудительно заставить запускаться от админа, проверив что нажата клавиша Ctrl и т.д.

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

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

    [+] [-]
  • Откуда: Грузия, город Рустави
AZJIO,
aa Приветствую, дорогой друг. Вот сейчас понял, так как описали подробно. az

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

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

    [+] [-]
Обновил
К действию по правой кнопки мыши добавлены иные события при удерживании Ctrl и Shift.
Ctrl - открыть в проводнике
Shift - выдаёт диалоговое окно "Инфа кнопки" с отображением данных для этой кнопки, которые указываются в ini-файле. Это позволит увидеть ссылку, исполняемый файл, параметры запуска и т.д.
Ctrl + Shift - открывает Readme.txt в папке исполняемого файла, если он там есть. Это можно было бы в параметре указать, так как это мог бы быть скриншот.
Если файлы исполняемые в одной папке лежат то вместо Readme.txt можно бы было сделать испоняемый_файл.txt

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

    ANDREISM
  • 1886
  • Стаж: 8 лет 5 месяцев
  • Сообщений: 125
  • Репутация:12

    [+] [-]
AZJIO, День добрый aa , добавьте ПОИСК, очень удобно будет искать что-то нужное, когда много вкладок будет. Можно с клавишей Ctrl+f, автоматически будет появляться под меню поиск что искать.

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

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

    [+] [-]
  • Откуда: Грузия, город Рустави
ANDREISM, AZJIO,
aa Приветствую. Если получится реализовать Поиск, он должен работать по name=XXXXXXX, то есть чтобы работал исключительно по названиям кнопок.

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

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

    [+] [-]
rezorustavi, такой способ был бы удобен в лаучнере от Avalat тут. Я на секунду подумал может мне сделать и такую версию лаучнера, но понимая сколько работы потребуется пока оставил затею. Преимущество такого лаунчера сразу выдавать все разделы не создавая новых окон. Иконки также поддерживаются. Элемент ListView поддерживает разные стили отображения как в эксплорере (плиткой, списком, таблицей), по сути это один элемент. Элемент ListView поддерживает подсвечивание разным цветом, как просил rekshd, разделяя и группируя программы. ListView поддерживает группы, я это задействовал в программе поиска дубликатов файлов, но это не работает на WinXP. ListView поддерживает правый клик мыши нативно. То есть можно было бы сделать окно на весь экран, переключить в режим плиток и выглядело бы как кнопки. Поиск там тоже нативный, по крайней мере в AutoIt3-примерах были функции, где просто находясь в ListView набирать текст и ListView прокручивает по мере набора. С ListView можно осуществить поиск собственный по ini-файлу, а потом переключить раздел активируя нужный пункт, а в кнопочном варианте много городить, искать в ini-файлах, запускать его с лаунчером, переключить активность кнопки, то есть встроить функцию-костыль, устроить распознавание ini которые содержать кнопки, а что если этот конфиг левый и пользователем не предназначен для открытия лаунчером. Тогда делать как я, набрать в гугле "имя_проги официальный сайт", скачать и поставить, всё. Или аналогично в папке прог в проводнике пишешь имя проги в поле поиска, получаешь файл.

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

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

    [+] [-]
  • Откуда: Грузия, город Рустави
Del


Последний раз редактировалось: rezorustavi (2022-02-20 10:17), всего редактировалось 1 раз

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

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

    [+] [-]
92976rezorustavi, такой способ был бы удобен в лаучнере от Avalat тут. Я на секунду подумал может мне сделать и такую версию лаучнера,
не нужен он такой, вот то что есть более чем достаточно, а то разрастется до комбайна

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

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

    [+] [-]
  • Откуда: Грузия, город Рустави
93036а то разрастется до комбайна
aa До Adobe Photoshop 2022 не дорастёт. На то и есть Launcher, Launcher_Uni, Launcher-OWNER и которым пользуюсь я - LauncherXYWH-UDLR_Uni, так как вес не имеет значения, а гибкость и универсальность никогда не помешает. И никто не мешает сохранять старые версии:



Последний раз редактировалось: rezorustavi (2022-02-20 10:17), всего редактировалось 1 раз

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

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

    [+] [-]
Обновил
Добавил функцию поиска для проверки в LauncherXYWH-UDLR_Uni
1. Нажать Ctrl+F (или пункт в меню), появится окно ввода.
2. Набираем полное имя или часть текста, или даже одну букву и жмем Enter (или ОК).
3. Если в кнопках есть такой текст то первый найденный будет выбран. Если найдено больше 2-х, то вдобавок выводится сообщения о всех найденных и вы можете уточнить поиск (повторно вызвать с другим текстом), чтобы выбран был один однозначно.

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

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

    [+] [-]
  • Откуда: Грузия, город Рустави
AZJIO,
aa Приветствую. Благодарю за труды, поиск работает на каждой странице. ay

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

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

    [+] [-]
Обновил Launcher.exe, версия 0.5.7
Кроме того что встроил поиск, решил сделать по иному (в отличии от XYWH-UDLR), не создавать элемент структуры, а запрашивать его с кнопки из окна, так как на это не тратится много ресурсов и текст хранится в объекте кнопки по дескриптору. Но возникла проблема как подсветить кнопку, вернее даже после просмотра стилей кнопки обнаружил что границу кнопки можно просто переключать, а поэтому этот механизм не затратный и решил в основной компактный лаунчер встроить подсветку активной кнопки и управление стрелками. Сначала добавилось 2 кб увеличение проги, но вместо замудрёного вычисления активной кнопки и снятие с предыдущей активной кнопки решил использовать сообщения BN_SETFOCUS и BN_KILLFOCUS, сразу не заработало, нашёл, что нужно добавить BS_NOTIFY кнопке, чтобы она высылала эти сообщения, ну а функции обратного вызова никаких рассчётов, получил кнопку деактивированную снял стиль BS_DEFPUSHBUTTON, на активированную поставил. При поиске надо было если не найдено сбросит выбор чтобы пользователь нажав Enter не получил события, иначе думая что нашёл запустил бы старую выделенную кнопку. Проверил вроде всё работает стабильно. Возможно если не найдено можно выдать диалог, что не найдено или даже можно выдать диалог ввода повторно, что сигнализирует что не найдено и предлагает ввести снова, а при отсутствии ввода уже не повторять.

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

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

    [+] [-]
93044встроил поиск
Может поиск сделать на всех *.ini которые находятся в папке с Launcher*.exe?

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

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

    [+] [-]
93037И никто не мешает сохранять старые версии

af
Добавлено через 8 минут 8 секунд:
AZJIO, aa Спасибо за поиск aa
Дотошно не тестировал, но вроде усё пашет как планировалось ...-
Добавлено через 12 минут 44 секунды:
93045Может поиск сделать на всех *.ini которые находятся в папке с Launcher*.exe?
Вопрос тока как сделать перепрыгивание на другую страницу лаунчера ...
И как будет выглядеть окно поиска, если будет найдено несколько вхождений искомого на разных вкладках ?
Например, в SysAdmin Software ...
Тогда нужно придумывать отдельное окно...-
AZJIO, Тот вариант посика, который реализован, для одной вкладки наверно оптимален.
А можно ли его реализовать без нажатия Ctrl+F ?
ah
Например, находясь мышкой над лаунчером, начинаешь набирать на русском "мышь" и подсвечивается кнопка "мышь"
А после нажатия мышкой или Энтером эта кнопка нажимается
Как Вам такой вариант ?

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

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

    [+] [-]
SergeyZV, пока лень этот костыль делать. Теоретически путь к лаунчеру известен и легко можно открыть:
Launcher.exe "путь_Launcher*.ini"
Поиск файлов в корневой папке по маске Launcher*.ini или можно задать параметром в [gui]
SearchMask=Launcher*.ini
SearchMask=*.ini
SearchMask=%prrog_name%*.ini
Можно в XYWH-UDLR встроить для начала. Только пока не предусмотрен третий параметр, чтобы в новом окне выделить кнопку.
rekshd, пока не понятно как это реализовать, тоже костыль, перехват событий клавиш, непонятно где начало, где конец, проверять промежуток 3 сек (?) прежде чем принять этот ввод и сбросить буфер. Ну и главное активность окна, а не мышка над лаунчером, а то пользователь вдруг будет в другом окне вводить, а мышка в неактивном окне над лаунчером и тот бедолага (лаунчер) будет там разгадывать тайны ввода.

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


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

Текущее время: 19-Апр 18:24

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


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