motorboy
  - Стаж: 1 месяц 11 дней
- Сообщений: 68
- Репутация:15[+] [-]
|
Простой лаунчер для запуска портативных программ. Поддерживает Drag&Drop. Позволяет запускать программы от имени Администратора и от имени Системы с правами TrustedInstaller. Если запускать программу удерживая клавишу Shift она запустится от имени администратора если удерживать CTRL+Shift запустится от имени системы. Если удерживать клавишу ALT - то запустится без ключей командной строки. Позволяет добавлять программы перетаскиванием из проводника Windows. Если вы перетащите файл на правую панель, программа добавится в текущую выделенную категорию. Если перетащите на левую панель, программа добавится в ту категорию на которую вы её бросите. Также чтобы сменить категорию перетащите программы из правой панели на категорию в левую панель. Категории можно сортировать перетаскиванием. Программы сортируется автоматически по алфавиту. Также вы можете добавлять системные утилиты Windows. Но это можно делать только вручную. Выберите "Добавить программу" и для например "Панели управления" впишите "Control". Утилита сама найдёт нужный файл и запустить его. В лаунчере можно использовать в путях переменные окружения (%WINDIR% %USERPROFILE% %SystemRoot% и т.д.). В файлах и папках добавленных в лаунчер проверяются пути, и если в них есть пути из переменных окружения - они подставляются в путь к файлу\папке. Например если добавить папку "Рабочий стол" - то путь будет выглядеть так "%USERPROFILE%\Desktop". Так же переменные окружения можно использовать в параметрах коммандной строки. Например что бы открть файл "Hosts" на любом компьютере заполните поля приложения так: "Путь к программе\файлу" - %SystemRoot%\System32\Notepad.exe "Параметры коммандной строки" - %SystemRoot%\System32\drivers\etc\hosts Для показа окна лаунчера используйте комбинацию клавиш CTRL+пробел или выберите горячую клавишу в настройках. Другие клавиши: CTRL+F - делает активной строку поиска. CTRL+D - дублировать текущую выделенную программу (если нужно добавить одну и ту же прогу в разные группы). CTRL+N - Добавить программу или группу. CTRL+E - Редактировать программу или переименовать группу. CTRL+S - Открыть окно настроек CTRL+I - Открыть окно информации. Shift-F10 - вызов контекстного меню для групп\программ. Стрелка вправо\влево делают активными соответственно правую и левую панель. Клавиши вверх\вниз - перемещение по списку групп\программ. ENTER - запуск текущей выделенной программы. DEL - удалить текущую выделенную программу или группу, очистить строку поиска. Если есть идеи что можно добавить в лаунчер - пишите в комментариях. Постараюсь сделать все на что хватит знаний. История версий - текущая 1.6.6Версия 1.1 ====================================== Добавлена возможность запуска программ одним щелчком мыши. Добавлена возможность запуска программ без ключей. Добавлено сворачивание лаунчера в трей и горячая клавиша для показа окна (по умолчанию CTRL+пробел но можно изменить в настройках). Добавлена возможность добавления нескольких файлов перетаскиванием из проводника Windows. Добавлена возможность изменить размер шрифта для панелей. Позже попробую сделать изменение размера иконок. Версия 1.2 ====================================== -Добавлено Hover меню в трее. -Добавлен 12 размер шрифта (может кому пригодится). -Теперь в режиме запуска одним щелчком мышки при наведении курсора на прогу показывается описание. -Добавлен запуск без ключей для Администратора и Системы. -Исправлены вылеты и баги при удалении программ клавишей Del. Добавлен фильтр скрытия программ для: -WindowsPE -Windows normal -Windows x86 -Windowsx64 Скрытые программы будут отображаться при поиске и при отображении всех программ. Их фон будет подсвечен красным цветом. Версия 1.3 ===================================== -Добавлена возможность выбора шрифта для панелей и интерфейса. -Добавлена возможность изменять цвет шрифта и фона главного окна. -При первом запуске теперь можно выбрать язык лаунчера. -Добавлена возможность экспорта ярлыков группы. Нажмите правую кнопку мыши на группе удерживая клавишу Shift. -Добавлена возможность добавлять в лаунчер папку с программами. Перетащите папку на список групп. Она добавится в список и в нее будут добавлены все найденные в ней и подпапках .exe,.lnk,.bat,.cmd файлы. -Добавлена возможность поменять местами кнопки мыши для меню в трее. -Добавлена возможность добавлять лаунчер в автозагрузку Windows. -При удалении группы теперь можно удалить все программы из этой группы. -Изменен внешний вид главного окна. Добавлена в список групп, группа "Все программы". -Теперь иконки программ можно сохранять в кеше. Значительно увеличивается скорость загрузки лаунчера. Особенно на медленных флешках или дисках. -Теперь лаунчер идет в двух вариантах х64 и х86. В х86 на 64 битных Windows не загружаются иконки некоторых файлов. В х64 все в порядке. Из за добавления группы "Все программы" при первом запуске продублируются группы "Избранное" и "Без категрии". Просто удалите их. Исправил все баги о которых сообщали пользователи (я надеюсь). Так же добавил почти все о чем просили. Если не будет новых багов, то займусь добавлением функции WPI в лаунчер. Версия 1.4 ===================================== -Теперь в лаунчере можно использовать в путях переменные окружения (%WINDIR% %USERPROFILE% %SystemRoot% и т.д.). В файлах и папках добавленных в лаунчер проверяются пути, и если в них есть пути из переменных окружения - они подставляются в путь к файлу\папке. Например если добавить папку "Рабочий стол" - то путь будет выглядеть так "%USERPROFILE%\Desktop". Так же переменные окружения можно использовать в параметрах коммандной строки. Например что бы открть файл "Hosts" на любом компьютере заполните поля приложения так: "Путь к программе\файлу" - %SystemRoot%\System32\Notepad.exe "Параметры коммандной строки" - %SystemRoot%\System32\drivers\etc\hosts -Добавлен фильтр расширений файлов добавляемых при перетаскивании папки на панель групп. Добавить\убрать расширения можно в настройках. -Изменен поиск программ. Теперь если в строке поиска перва буква заглавня - то поиск будет от начала имени программы (если буквы из строки поиска сопадают с первыми буквами в имени программы). Если строчная - то будет искаться в любом менсте имени программы. -Добавлена возможность включать показ сетки линий в списках и раскраска списка зеброй. Включается в настройках. -Добавлена возможность изменять иконку отображаемую в заголовках окон, панели задач, трее. что бы это работало - поместите иконку с именем "SimpleLauncher.ico" в папке лаунчера. -Теперь описание программы можно редактировать в главном окне. Добавьте или измените описание и нажмите CTRL+S для сохранения. -Теперь лаунчер запоминает стили выбраных шрифтов. -Добавлена возможность выбопа цвета подсветки для списка групп\программ. -Возвращена возможность добавлять папки в список программ. -Исправлены все баги о которых сообщали пользователи и те которые нашел сам. Перенес параментры шрифтов в ini в отдельную группу. Поэтому при первом запуске новой версии лаунчера у вас слетят настройки шрифтов. Версия 1.5 ===================================== -Исправлено отображение раскраски зеброй и разделительных линий в панелях. -Цвет подсветки по умолчанию теперь зеленый -Кастомная подсветка теперь работает и без включения смены цвета для панелей. -Увеличено расстояние между иконкой и названием групп. -Исправлено добавление корневых папок дисков (С:\ D:\ и т.д.) -Добавлена раскраска зеброй панели групп. -Добавлена возможность настраивать контрастность разделительных линий,раскраски зеброй и подсветки. -Добавлен виджет для лаунчера. При запуске лаунчера он появляется на рабочем столе (если включено показывать виджет при запуске лаунчера). Его можно поместить в любом месте рабочего стола. Перемещать его можно левой кнопкой мыши. Двойной клик - показать\скрыть лаунчер. Правый клик - показ hover меню. По умолчанию изображение виджета - иконка лаунчера. Можно использовать свое изображение для виджета. Для этого поместите в папку лаунчера изображение в формате PNG и именем SimpleLauncher.png (!!! В PNG файле обязательно должен быть канал прозрачности иначе виджет не будет отображаться !!!). Размер изображения подбирайте на свое усмотрение. При DPI рабочего стола 125% - размер 64х64 пикселя будет примерно как иконка самого лаунчера. Изображение не обязательно должно быть квадратным. Клики мышки по гаджету срабатывают только в непрозрачных местах гаджета. Но в настройках можно включить срабатывание кликов по всей площади гаджета. !!! Перенес настройки цвета в отдельную группу в INI файле. Поэтому при первом запуске у вас слетят настройки цвета главного окна !!! Версия 1.5.6 ===================================== Исправил невозможность запуска программ с относительными путями при запуске лаунчера из автозагрузки Window. Добавил выбор глубины сканирования папок при добавлении папки в список групп. Теперь если вы добавляете папку в список программ (правая панель) с зажатой клавишей "Shift" будет предложено добавить файлы из этой папки в текущую группу (так же будет предложено выбрать глубину сканирования). Запретил добавление логических дисков в панель групп и при добавлении в панель программ с зажатой клавишей Shift. Добавил возможность выбора показа виджета при запуске в обычной Windows и WinPE. Вернул подсказки по горячим клавишам в менюшки. Добавил возможность указывать рабочую папку для программ (из ярлыков при перетаскивании берется автоматически если есть). Версия 1.6 ===================================== Исправлено: Когда тянешь папку с шифтом в окно прог в папку без категорий, добавляются файлы только во все программы. Редкие вылеты при удалении программ из списка. Добавлено: Добавлен пункт показа виджета "кроме WinPE". Добавлена возможность для перетягивания из программ с низшими правами в проги с высшими правами (Не проверено). При добавлении папки в список групп и в список программ (с Shift-ом), первое окно с сообщением (добавить/отменить) убрано. Добавлены переменные окружения и относительный путь для рабочей папки. Добавлена опция скрывать программу в версии Windows ниже 10. Добавлены пункты в меню лаунчера - "Добавить программы из Меню Пуск" и "Удалить отсутствующие программы". Добавлена возможность изменять размер иконок. (от 16х16 до 64х64). Очистите кеш иконок!. При следующем запуске лаунчер загрузит иконки заново в более высоком качестве(загрузка может быть долгой!). Увеличена на порядок скорость отображения списка программ (через WinApi). Версия 1.6.4 ===================================== Исправлена проблема со шрифтами в главном окне при открытии окна редактирования. Добавлена опция скрытия виджета в полноэкранном режиме (см. в настройках). Переделан код определения полноэкранного режима. Теперь должно работать в WinRE. Исправлены баги с переменными окружения для х64 и х86 приложений. Добавлена опция - отображать отсутствующие программы в конце списка (см. в настройках). Исправлено несколько найденных багов. Оптимизация. Версия 1.6.6 ===================================== В меню лаунчера добавлена опция показать\скрыть виджет. В ховер меню отсутствующие программы теперь не отображаются. Ссылка для скачивания v1.6.6 https://drive.google.com/file/d/1liOwo3KYgCf7avy6YG...view?usp=sharing https://disk.yandex.ru/d/WD2abCKzElMqow Скриншоты
     
Последний раз редактировалось: motorboy (Вчера, в 22:02), всего редактировалось 38 раз(а)
|
 Отправлено: 11-Апр-2026 22:12
(спустя 1 месяц 3 дня)
xnik
  - Стаж: 7 лет 5 месяцев
- Сообщений: 531
- Репутация:12[+] [-]
- Откуда: СССР
|
А вот это сложнее. Может просто сделать что бы в ховер меню не отображались отсутствующие проги? Вполне достаточно Вот бы еще иконки для категорий и профили
|
AZJIO
  - Стаж: 8 лет 1 месяц
- Сообщений: 1410
- Репутация:127[+] [-]
|
106827Поверьте, мой код вызовет очень много критики Я думал что критерием остаётся типа добился сам, чтобы никто не присвоил... А если проблема только в критике, то наоборот надо выкладывать и выслушивать, учится писать лучше. Вот и пример с Mazahaka_lab, он выкладывает критику, я реагирую в том числе и форме обратной критики, в итоге посмотри какой вылизанный код получился, избавление от WinAPI с переходом на нативные функции. И число строк раз в 5 сократилось.
|
-PITER-
 - Стаж: 8 месяцев 14 дней
- Сообщений: 3
- Репутация:0[+] [-]
|
И число строк раз в 5 сократилось. Опять же, это "Ваш лаунчер", и Вы его дорабатываете. Человек учиться,пока на своих ошибках, и это правильно. Если ему подсказывать "как должно быть", то это дорога в тупик. Я Вас очень уважаю и пользуюсь многими вашими програмами, но дайте человеку создать что то своё (как он это видит).
|
motorboy
  - Стаж: 1 месяц 11 дней
- Сообщений: 68
- Репутация:15[+] [-]
|
106832Вот бы еще иконки для категорий и профили Иконки для категорий планировались с самого начала. Но я все откладывал на потом. Наверное пришло время ими заняться. Профили... Может проще для каждого профиля использовать копии лаунчера находящиеся в разных папках? Две копии из одной папки запустить не получится. А вот если они в разных папках - то можно.
|
 Отправлено: Вчера, в 00:05
(спустя 52 минуты)
Stranger13
 - Стаж: 3 года 2 месяца
- Сообщений: 61
- Репутация:0[+] [-]
|
106829Может просто сделать что бы в ховер меню не отображались отсутствующие проги? так даже лучше106835Может проще для каждого профиля использовать копии лаунчера находящиеся в разных папках? а как у MInstAll не получится сделать, в одну папку скидывать конфиги с разными именами, добавить к примеру между кнопкой настроек и поиском, выпадающий список с выбором конфига "профиля", наверное как я понимаю придется только разделить настройки самого лаунчера и списка добавленных программ в отдельный конфиг "профиль" ну или типо того что то.
|
 Отправлено: Вчера, в 00:46
(спустя 41 минута)
AZJIO
  - Стаж: 8 лет 1 месяц
- Сообщений: 1410
- Репутация:127[+] [-]
|
106835 копии лаунчера находящиеся в разных папках? Две копии из одной папки запустить не получится ini$ = ProgramFilename() ini$ = Left(ini$, Len(ini$) - 3) + "ini" ini-файл такой же как имя у проги, аналогично с файлом базы данных так можно сделать.106834Если ему подсказывать "как должно быть", то это дорога в тупик. То есть школа - дорога в тупик? Отсутствие подсказки хороших практик это как раз закладывание каменного века и понимание через пары лет что прогу надо просто полностью переписывать. Я для себя пометки делаю если вижу что-то выдающееся, чтобы не забыть. Например вот и вот, а также сделал свой собственный плагин автозавершения, чтобы вставлять фрагменты кода, каждый раз улучшая их. И мне на форуме много помогали, когда я начинал и всё делал ещё в стиле AutoIt3, на котором ранее писал проги.
|
 Отправлено: Вчера, в 00:50
(спустя 3 минуты)
motorboy
  - Стаж: 1 месяц 11 дней
- Сообщений: 68
- Репутация:15[+] [-]
|
106837ini-файл такой же как имя у проги, аналогично с файлом базы данных так можно сделать. Я сначала так и сделал. Когда был только один исполняемый файл. А как быть с SimpleLauncher_x86? . Тем более я намерено сделал запрет запуска нескольких копий лаунчера из одной папки.106836а как у MInstAll не получится сделать, в одну папку скидывать конфиги с разными именами, добавить к примеру между кнопкой настроек и поиском, выпадающий список с выбором конфига "профиля", наверное как я понимаю придется только разделить настройки самого лаунчера и списка добавленных программ в отдельный конфиг "профиль" ну или типо того что то. С профилями буду разбираться позже. Мне нужно несколько дней отдохнуть от лаунчера. Начал пропадать интерес к нему. Завтра опубликую маленькое обновление и наверное перерыв на недельку. Потом буду делать профили и иконки для категорий. Надеюсь запросов больше не будет и я смогу приступить к WPI.
|
 Отправлено: Вчера, в 01:02
(спустя 12 минут)
AZJIO
  - Стаж: 8 лет 1 месяц
- Сообщений: 1410
- Репутация:127[+] [-]
|
106838намерено сделал запрет запуска нескольких копий лаунчера из одной папки *p = CreateSemaphore_(#Null, 0, 1, GetFilePart(ProgramFilename(), #PB_FileSystem_NoExtension) + "459345") If *p And GetLastError_() = #ERROR_ALREADY_EXISTS У меня тоже запрет, но на одноимённого файла, то есть GetFilePart(ProgramFilename(), #PB_FileSystem_NoExtension) + "459345" это имя файла, взятое из текущего имени, если имя другое, то его можно запустить, с одинаковым именем второй раз нельзя. А так как к имени привяязаны одноимённые база данных и конфиг, то они даже чужие файлы не смогут использовать. Число 459345 я добавил, что если будет другая прога с таким же именем как у тебя, то сработает вот это дополнительное число, которое вряд ли автор другой проги в точности вставит у себя. То есть другая прога с именем как у тебя запустится, а твоя второй раз с этим же именем - нет (независимо от папки, даже в другой папке, но это можно изменить вставив полный путь, а не имя, т.е. без GetFilePart()).
|
 Отправлено: Вчера, в 01:07
(спустя 4 минуты)
motorboy
  - Стаж: 1 месяц 11 дней
- Сообщений: 68
- Репутация:15[+] [-]
|
106837То есть школа - дорога в тупик? Отсутствие подсказки хороших практик это как раз закладывание каменного века и понимание через пары лет что прогу надо просто полностью переписывать. Я для себя пометки делаю если вижу что-то выдающееся, чтобы не забыть. Например вот и вот, а также сделал свой собственный плагин автозавершения, чтобы вставлять фрагменты кода, каждый раз улучшая их. И мне на форуме много помогали, когда я начинал и всё делал ещё в стиле AutoIt3, на котором ранее писал проги. Согласен. Учиться надо. Я когда смотрю сейчас код своей первой утилиты QMLauncher, тоже понимаю что сейчас сделал бы все по другому. Проще и аккуратнее. У меня уже есть с десяток утилит. И с каждым разом код получается все компактнее и понятнее. Я использую в свох прогах для хранения данных массив структур. Я так и не смог понять как работать со списками. И поэтому код AZJIO где используются списки мне просто не понятен. Хотя со временем думаю освою и это. Добавлено через 4 минуты 38 секунд:
106839 У меня тоже запрет, но на одноимённого файла, то есть GetFilePart(ProgramFilename(), #PB_FileSystem_NoExtension) + "459345" это имя файла, взятое из текущего имени, если имя другое, то его можно запустить, с одинаковым именем второй раз нельзя. А так как к имени привяязаны одноимённые база данных и конфиг, то они даже чужие файлы не смогут использовать. Число 459345 я добавил, что если будет другая прога с таким же именем как у тебя, то сработает вот это дополнительное число, которое вряд ли автор другой проги в точности вставит у себя. То есть другая прога с именем как у тебя запустится, а твоя второй раз с этим же именем - нет (независимо от папки, даже в другой папке, но это можно изменить вставив полный путь, а не имя, т.е. без GetFilePart()). У меня запрет запуска на основе пути к файлу. Если прога с этим путем уже запущена, то вместо запуска копии выводится на передний план уже запущенная прога.
|
 Отправлено: Вчера, в 06:12
(спустя 5 часов)
AZJIO
  - Стаж: 8 лет 1 месяц
- Сообщений: 1410
- Репутация:127[+] [-]
|
106840Я использую в свох прогах для хранения данных массив структур. Я так и не смог понять как работать со списками. У массива особенность доступ по индексу. С точки зрения быстрого доступа к любому элементу массив лучше, но зато у списка способность быстро перечислять, быстро удалять из середины, так как не надо сдвигать последующие элементы назад, у списка следующий элемент записан в самой структуре элемента, и удаление из середины это просто перезапись указателя на следующий элемент в предыдущем элементе. То есть если превалирует добавление/удаление/перечисление, то список будет оптимальный. И наоборот доступ к случайному элементу медленней, так как надо его искать перемещаясь по указателям от начала. Но эта проблема легко решается, создание элемента возвращает указатель на него и я добавляю его в структуру самого элемента. Когда я создаю пункты в списке через ассоциативные данные связываю пункт с указателем на структуру данных этого пункта. Когда я кликаю на пункт я запрашиваю связанные данные, получаю указатель на структуру и мне доступны все данные этой программы, путь, иконка, флаг избранного, цвет и т.д. При этом операции с данными (перечислять, удалять, добавлять) лучше чем в массиве. Если в AutoIt3 я всё делал на массиве (там нет списка), то в PureBasic я не нахожу вообще смысла использовать массив. Вот весь доступ, когда я функцией GetGadgetItemData() получил ассоциативное значение - указатель, приравнял к указателю *s и далее могу получить элементы структуры текущего пункта.index_item = GetGadgetState(#LIG_Program) If index_item <> -1 *s = GetGadgetItemData(#LIG_Program, tmp) If *s Debug *s\name) Debug *s\path) Debug *s\argument EndIf EndIf
|
 Отправлено: Вчера, в 15:42
(спустя 2 часа 19 минут)
motorboy
  - Стаж: 1 месяц 11 дней
- Сообщений: 68
- Репутация:15[+] [-]
|
106841Вот весь доступ, когда я функцией GetGadgetItemData() получил ассоциативное значение - указатель, приравнял к указателю *s и далее могу получить элементы структуры текущего пункта. В будущем попробую использовать списки. В лаунчере уже нет смысла переделывать.106842Иногда при запуске появляется окно, иногда нет, UAC отключен Когда пользовался семеркой, помню нужно было снять галочку "Всегда спрашивать при открытии этого файла". Все мои программы подписаны самодельной цифровой подписью. Может быть еще и в этом проблема. Для 64 битной версии такое окно тоже появляется? По поводу иконок для категорий и профилей. Как думаете будет хорошей идеей создавать папку например "sldata" в папке лаунчера и уже там хранить иконки и профили?
|
 Отправлено: Вчера, в 17:01
(спустя 1 час 19 минут)
xnik
  - Стаж: 7 лет 5 месяцев
- Сообщений: 531
- Репутация:12[+] [-]
- Откуда: СССР
|
Для 64 битной версии такое окно тоже появляется? Да, но так же не предсказуемо, первый запуск все нормально, потом через несколько запусков может выйти это окно Да по сути главное чтобы в 10 11 проблем не былов папке лаунчера и уже там хранить иконки и профили? Вот например установил я шрифт в лаунчер из виндовс, потом загрузился на другом компе, и шрифта этого нет на нем. А если шрифт носить с собой в папке лаунчера то он всегда будет WPI - это для установки программ, как я понял, сам не пользуюсь, но может кому то это будет полезно А вот добавление из меню пуск, для чего надо, так и не понял Попробовал, загрузились: программы, ярлыки, всякая х, все равно структура уже не такая, все киш миш Профили это одно, вот если были бы вкладки или кнопки для быстрого перехода из одного в другой, это дало бы шанс несколько разных сборников забить в лаунчер и переключатся Например: 1 сборник порт софта, 2 сборник игр, итд По сути: лучшее это враг хорошего То что есть уже хорошо можно просто экспериментальные сборки выпускать, кому над пусть тестят
|
 Отправлено: Вчера, в 17:11
(спустя 10 минут)
motorboy
  - Стаж: 1 месяц 11 дней
- Сообщений: 68
- Репутация:15[+] [-]
|
106844 Профили это одно, вот если были бы вкладки или кнопки для быстрого перехода из одного в другой, это дало бы шанс несколько разных сборников забить в лаунчер и переключатся Например: 1 сборник порт софта, 2 сборник игр, итд Так профили для этого и нужны. Выбрал один профиль - один набор софта. Выбрал другой - другой.
|
Страница 14 из 15
Текущее время: 13-Апр 00:34
Часовой пояс: UTC + 3
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете прикреплять файлы к сообщениям Вы можете скачивать файлы
|
|