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

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

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

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

    [+] [-]
93049пока не понятно как это реализовать
Согласен, самым правильным признаком для срабатывания такого поиска будет активное окно лаунчера
Если окно лаунчера в фоне, то никаких действий не предпринимать.
А Искать тока при наличии активного окна лаунчера ...
В принципе, ведь и CTRL+F сейчас срабатывает тока при наличии активного окна лаунчера.
В любых других ситуациях поиск по лаунчеру ведь не запускается

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

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

    [+] [-]
Перезалил, добавив поиск в Launcher-OWNER. В LauncherXYWH-UDLR_Uni привёл к единому варианту не отдельное поле структуры для имени кнопки, а взятие текста с кнопки.
Launcher по закачкам обошёл ChkDskGui.
ChrisR дал свою функцию проверки битности ос - Is64BitOS, объяснив, что она надёжней в случае, если в WinPE_x64 отсутствует подсистема x32 и соответственно отсутствует папка SysWow64, по которой у меня сделана идентификация битности.

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

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

    [+] [-]
93072Launcher по закачкам обошёл ChkDskGui.
А у ChkDskGui было столько же версий?! ag

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

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

    [+] [-]
SergeyZV, да, если не больше, хотя может выкладывал я реже.В ChkDskGui код в 1500 строк, в лаунчере 1200, причём у ChkDskGui есть ещё внешние инклуды, то есть некоторый набор подключаемых файлов с функциями (+340 строк), которые многие тоже самому пришлось делать, это сортировка, встройка графики размера диска, вычисление координат окна. Ну и прога востребованная. Единственное варианты этой проги от других авторов было несколько штук, и не было ощущения добавления значительного функционала для скачивания, прога изначально и так имела возможность проверить диски, а то что там появилась сортировка, размеры это не являлось определяющем для основной функции теста дисков, просто информативно лучше.

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

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

    [+] [-]
Перезалил, использовал функцию Is64BitOS от ChrisR. И нюанс, так как проверка битности ОС нужна только в программе x32, то в x64 этой функции нет. И по умолчанию в x32 флаг перенаправления Wow64 включен, а в x64 выключен.

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

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

    [+] [-]
aa Здравствуйте, уважаемый AZJIO.
Такая проблема. В папке Soft находится папка AAA. В папке AAA находятся два файла b.exe и help.chm. Когда из папки AAA запускается программа b.exe, а из ее интерфейса запускается файл справки, то открывается help.chm.
При запуске b.exe из оболочки, файл справки не запускается - "файл help.chm не найден!"
В чём может быть проблема? ac
Спасибо.

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

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

    [+] [-]
strelec, Привет!
Когда запускается b.exe лаунчер передаёт рабочую директорию ту папку, в которой находится лаунчер, так как от неё он запускает Soft\AAA\b.exe. При этом b.exe передаётся рабочая директория. При запуске b.exe отдельно рабочая директория становится папка текущего b.exe и он уже не видит справки. С этой проблемой я первый раз столкнулся в AutoIt3 при запуске батника, батник не видел файлы, которые лежат с ним в одной папке, а при запуске батника вручную всё видит. Чтобы исправить проблему есть два пути: добавлять в ini-файл новый параметр wrk=рабочая_папка или же в b.exe задать рабочую директорию принудительно. Вот в AutoIt3 FileChangeDir.
Кстати, если я запускаю по F5 батники в AkelPad или Notepad++, то они тоже используют рабочую директорию не батника, а папки, в которой находится прога-редактор, то есть та папка, в которой находится AkelPad.exe или Notepad++.exe.

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

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

    [+] [-]
AZJIO, Приветствую Вас.
Спасибо за разъяснение возникшей проблемы.
Добавлено через 33 минуты 7 секунд:
Переместил help.chm в директорию с лаунчерами и все заработало. Буду экспериментировать далее.
Спасибо.

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

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

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

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

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

    [+] [-]
В версию овнер можно ли добавить стиль шрифта в этой версии эта опция не арбайтен. Размер шрифта почемуто разный в обычной версии и овнер хотя цыфра одна. .

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

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

    [+] [-]
Akkar1s, посмотрю как нибудь
rezorustavi, лень это делать, в теории просто по букве вырезать с текста и вставлять в заголовок и так крутить в цикле. Будет выглядеть модно а практичности на мой взгляд нет.

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

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

    [+] [-]
  • Откуда: Грузия, город Рустави
93948лень это делать
Как будет у Вас настроение и свободное время. az

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

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

    [+] [-]
aa Здравствуйте, Уважаемый AZJIO.
Параметры ini-файла
[gui]
Margin=5 - промежутки между кнопок
Кнопки
[8]
bhide=1 - создаёт пустое пространство по размеру кнопки, чтобы визуально разделить кнопки между собой.
Вопрос:
Имеется ли возможность или насколько это осуществимо, задать параметру значение bhide=xxx, чтобы этот параметр не только скрывал пустую ячейку, но и выполнял бы роль разделителя между ячейками по аналоги с контекстным меню:
Для главного меню:
"SeparatorBefore"="" - Разделитель перед
"SeparatorAfter"="" - Разделитель после
Для вложенного меню:
"CommandFlags"=dword:00000020 (20 для размещения разделителя перед пунктом меню)
"CommandFlags"=dword:00000040 (40 для размещения разделителя после пункта меню)
При этом высота этого “разделителя-кнопки” должна быть больше параметра Margin=, чтобы визуально было заметно что это разделитель, а не промежуток между кнопками, как бы "кнопка-разделитель"? Фон может быть тот же что и у промежутков между кнопок. ai
Спасибо.

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

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

    [+] [-]
strelec, привет, там всю концепцию менять придётся. В таком случае можно использовать кнопки с координатами и задать любые отступы. В моём варианте есть строки и колонки, как шахматная доска, отсюда и переходы активной кнопки вправо влево. Если делать некие промежутки которые невозможно контролировать, то надо рассматривать кнопки как один столбик с переносом, но без возможности определить столбик, или наоборот определить столбик но без возможности определить строку, так как промежутки в сумме могут сдвинуть кнопку на следующую строку и выбор вправо влево будет перебрасывать позицию вверх или вниз. Сейчас по высоте вычисляется размер окна или наоборот по окну вычисляется размер кнопок. Много привязок, которые требуют полной переделки, а концепции вычисления нет, не будет понятия строки, разве что предположить кнопки как одну последовательность. С использованием координат тоже не будет понятия право и лево, будет только последовательность заданная в ini-файле, даже если кнопки будут по координатам разбросаны на площади хаотично, скакать будет по последовательности создания.

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

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

    [+] [-]
AZJIO, здравствуйте.
там всю концепцию менять придётся. В таком случае можно использовать кнопки с координатами и задать любые отступы
Благодарю за подробные разъяснения. В оболочке, как видно, заложен довольно широкий функционал, который ещё предстоит осваивать, так как только автор знает все возможности разработки.
Понятно, что писать многостраничный Help не имеет смысла, но понять и освоить хотя бы малую часть замысла автора, необходимо. А для этого нужен эксперимент.
Дорогу осилит идущий.
Спасибо.

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


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

Текущее время: 29-Мар 10:30

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


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