motorboy
 - Стаж: 12 дней
- Сообщений: 18
- Репутация:5[+] [-]
|
Последний раз редактировалось: motorboy (Вчера, в 02:42), всего редактировалось 12 раз(а)
|
AZJIO
  - Стаж: 8 лет
- Сообщений: 1364
- Репутация:127[+] [-]
|
motorboy, вот ещё пример со списком, с привязкой данных к пунктуcode;- TOP EnableExplicit ;- ● Structure Structure prog path.s name.s idxImage.i size.q *p EndStructure ;- ● Define Define ListIcon_ID, hImgList Define hIcon, i, idx, tmp, tmp$ Define item.LVITEM Define *p Define NewList ProgName() Define NewList prog.prog() ;- List *p = AddElement(prog()) : prog()\p = *p : prog()\path = "C:\Program Files\7-Zip\7zFM.exe" *p = AddElement(prog()) : prog()\p = *p : prog()\path = "C:\Program Files\AIMP\AIMP.exe" *p = AddElement(prog()) : prog()\p = *p : prog()\path = "C:\Program Files\WinRAR\WinRAR.exe" *p = AddElement(prog()) : prog()\p = *p : prog()\path = "C:\Windows\System32\notepad.exe" *p = AddElement(prog()) : prog()\p = *p : prog()\path = "C:\Windows\System32\calc.exe" *p = AddElement(prog()) : prog()\p = *p : prog()\path = "C:\Program Files\Internet Explorer\iexplore.exe" *p = AddElement(prog()) : prog()\p = *p : prog()\path = "C:\Program Files\Everything\Everything.exe" *p = AddElement(prog()) : prog()\p = *p : prog()\path = "C:\Program Files\WinMerge\WinMergeU.exe" *p = AddElement(prog()) : prog()\p = *p : prog()\path = "C:\Program Files (x86)\K-Lite Codec Pack\MPC-HC64\mpc-hc64.exe" *p = AddElement(prog()) : prog()\p = *p : prog()\path = "C:\Program Files (x86)\Resource Hacker\ResourceHacker.exe" *p = AddElement(prog()) : prog()\p = *p : prog()\path = "C:\Program Files (x86)\Scanner\Scanner.exe" *p = AddElement(prog()) : prog()\p = *p : prog()\path = "C:\Program Files (x86)\HxD\HxD.exe" *p = AddElement(prog()) : prog()\p = *p : prog()\path = "C:\Program Files (x86)\QTranslate\QTranslate.exe" *p = AddElement(prog()) : prog()\p = *p : prog()\path = "C:\Program Files (x86)\HTML Help Workshop\hhw.exe" *p = AddElement(prog()) : prog()\p = *p : prog()\path = "C:\Program Files (x86)\FastStone Image Viewer\FSViewer.exe" *p = AddElement(prog()) : prog()\p = *p : prog()\path = "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" ;-┌──GUI──┐ If OpenWindow(0, 0, 0, 300, 350, "Example", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) ListIcon_ID = ListIconGadget(#PB_Any, 5, 5, 290, 340, "Файлы", 200, #PB_ListIcon_FullRowSelect | #LVS_NOCOLUMNHEADER) hImgList = ImageList_Create_(32, 32, #ILC_COLOR32 | #ILC_MASK, 1, 1) SendMessage_(GadgetID(ListIcon_ID), #LVM_SETIMAGELIST, #LVSIL_SMALL, hImgList) ; Добавляем данные ForEach prog() Next i = 0 SendMessage_(GadgetID(ListIcon_ID), #WM_SETREDRAW, 0, 0) ForEach prog() If FileSize(prog()\path) > 100 hIcon = 0 ExtractIconEx_(prog()\path, 0, @hIcon, 0, 1) If hIcon tmp = ImageList_AddIcon_(hImgList, hIcon) DestroyIcon_(hIcon) ; Иконку уже в ImageList, оригинал можно удалить If tmp <> -1 prog()\idxImage = i item\mask = #LVIF_IMAGE item\iItem = i item\iImage = i tmp$ = GetFilePart(prog()\path, #PB_FileSystem_NoExtension) AddGadgetItem(ListIcon_ID, i, tmp$) SendMessage_(GadgetID(ListIcon_ID), #LVM_SETITEM, 0, @item) SetGadgetItemData(ListIcon_ID, i, prog()\p) i + 1 EndIf EndIf Else DeleteElement(prog()) ; удалить несуществующий путь из списка EndIf Next SendMessage_(GadgetID(ListIcon_ID), #WM_SETREDRAW, 1, 0) ;-┌──Loop──┐ Repeat Select WaitWindowEvent() ;- ├ Gadget Case #PB_Event_Gadget Select EventGadget() Case ListIcon_ID If EventType() = #PB_EventType_LeftClick idx = GetGadgetState(ListIcon_ID) If idx <> -1 *p = GetGadgetItemData(ListIcon_ID, idx) ChangeCurrentElement(prog() , *p) RunProgram(prog()\path) EndIf EndIf EndSelect ;- ├ Close Case #PB_Event_CloseWindow CloseWindow(0) ImageList_Destroy_(hImgList) End EndSelect ForEver ;-└──Loop──┘ EndIf
|
motorboy
 - Стаж: 12 дней
- Сообщений: 18
- Репутация:5[+] [-]
|
AZJIO Спасибо за помощь! Скоро выложу новую версию в которой реализовал то о чем просили, а потом займусь размером иконок, Hover меню, и фильтром показа программ на разных версиях винды.
|
Stranger13
 - Стаж: 3 года 1 месяц
- Сообщений: 23
- Репутация:0[+] [-]
|
motorboy опробовал версию 1.1 спасибо за увеличение шрифта до 11, если можно для порядка до 12 увеличить мало ли кому пригодится. выявились косячки: -горячие клавиши на закрытие не работает, хотя в настройках написано "отображать/скрывать"; -в настройках при смене языка пропадает пункт свернуть в трей, приходится сохранить настройки и перезапустить тогда все норм; -при нажатии на DEL иногда прога завершает работу и удаляет не выделенные программы; -текст во вкладке "запуск от имени" редактировании проги не вмещается во вкладке; -если со всплывающими подсказками не получается, тогда может при наведении курсора мыши на прогу сделать чтоб описание тоже менялось, а то при включении запуска прог одним щелчком теряется возможность описания просматривать внизу панелей; -Запустить без ключей, для порядку может тогда и в меню "запустить от" добавить чтоб был полный функционал Проверял на Windows 10x64 LTSC 1809 Еще одна хотелочка - возможно ли сделать запуск программ в запароленных архивах, как в 2K10 SoftPack или что то подобное.
|
 Отправлено: 11-Мар-2026 13:06
(спустя 1 час 51 минута)
xnik
  - Стаж: 7 лет 4 месяца
- Сообщений: 511
- Репутация:12[+] [-]
- Откуда: СССР
|
возможно ли сделать запуск программ в запароленных архивах Запорольте, потом в окне cmd пропишите пароль
|
motorboy
 - Стаж: 12 дней
- Сообщений: 18
- Репутация:5[+] [-]
|
Stranger13 -Закрытие окна горячей клавишей отключил случайно. В обновлении будет исправлено. -Пропадает пункт "Свернуть в трей" - исправил. -При нажатии на DEL иногда прога завершает работу и удаляет не выделенные программы - тут не знаю в чем причина. У меня такого не было. При удалении через меню такой проблемы не было? Попробуйте проследить когда именно происходит вылет(при удалении последней программы в списке, первой программы или другое). -Текст во вкладке "запуск от имени" редактировании проги не вмещается во вкладке - исправил. -Со всплвающими подсказками попробую что то придумать. -Запустить без ключей в меню "запустить от" добавлю. -Запуск программ в запароленных архивах... Можно подробнее. Что именно нужно? Добавить опцию ввода пароля под звездочками в окне добавления\редактирования и хранить пароль в зашифрованном виде? Что бы прога запускалась только из лаунчера?
|
AZJIO
  - Стаж: 8 лет
- Сообщений: 1364
- Репутация:127[+] [-]
|
106629-Со всплвающими подсказками попробую что то придумать. BalloonTip
|
Stranger13
 - Стаж: 3 года 1 месяц
- Сообщений: 23
- Репутация:0[+] [-]
|
motorboyПопробуйте проследить когда именно происходит вылет к примеру ставим курсор на самую верхнюю прогу в списке группы и нажимаем два раза подряд DELL верхняя прога удаляется и после вылет лаунчера. Еще один момент, выбираем верхнюю прогу в группе, затем выбираем другую группу (мышкой) выбирается другая группа но в правой панели не одна прога не выбрана, и после нажатия на DELL удаляется прога с прошлой группы, ну а если два раза делл то вылетает лаунчер.Со всплывающими подсказками попробую что то придумать. я чего затронул эту тему с подсказками всплывающими, когда просил сделать запуск программ по одиночному клику, то понимал что нарушится функционал описаний к программам который уже имеется, поэтому и предложил. Тут автору решать ка сделать так чтоб при изменении настроек функционал не хромал.хранить пароль в зашифрованном виде? Что бы прога запускалась только из лаунчера? Да. Вот тут для примера можно посмотреть чтоб не расписывать 2k10@Next_ru
|
Stranger13
 - Стаж: 3 года 1 месяц
- Сообщений: 23
- Репутация:0[+] [-]
|
AZJIOНо мне кажется изучать софт нужно не по подсказкам. Полностью согласен! Но речь идет о гибкости и удобстве в использовании функционала лаунчера, в части описания к программам.выводить подсказки перемещением курсора стрелкой на клавиатуре Мне достаточно и этого, но для функциональности не мешалоб и клавишами и наведением мышки на нужную прогу отображать подсказки, к примеру как MinstAll.
|
motorboy
 - Стаж: 12 дней
- Сообщений: 18
- Репутация:5[+] [-]
|
106631 Цитата хранить пароль в зашифрованном виде? Что бы прога запускалась только из лаунчера? Да. Вот тут для примера можно посмотреть чтоб не расписывать 2k10@Next_ru Stranger13, Вопрос по запуску запароленных архивов. Вы хотите использовать программы из сборки 2k10@Next_ru? Файлы с расширением .7К? Или свои собственные запароленные архивы? Я не совсем понимаю как запускаются файлы 7К. Понятно что сначала распаковывается архив и запускается определенный ехе файл. Как указать лаунчеру какой файл запускать? И для распаковки такого архива придется включать в лаунчер еще и консольный архиватор 7zip?
|
 Отправлено: Вчера, в 00:24
(спустя 2 часа 5 минут)
Stranger13
 - Стаж: 3 года 1 месяц
- Сообщений: 23
- Репутация:0[+] [-]
|
motorboyВы хотите использовать программы из сборки 2k10@Next_ru? Файлы с расширением .7К? Или свои собственные запароленные архивы? Конечно лучше для вашего лаунчера свой формат архивов установить и использовать, а утилиты с 2k10@Next можно будет и перепаковать которые нужны. ну или адаптировать лаунчер под 7к архивы, только там пароль специфический.Как указать лаунчеру какой файл запускать? Сильно не вникал, там в каждом архиве есть файл "*.wcs" со сценарием (какую разрядность запускать, устанавливает язык проги и.д.), лаунчер определяет файл запуска по нему.И для распаковки такого архива придется включать в лаунчер еще и консольный архиватор 7zip? походу придетсяДобавить опцию ввода пароля под звездочками в окне добавления\редактирования и хранить пароль в зашифрованном виде? Что бы прога запускалась только из лаунчера? как предложение внести пароль к архивам в общие настройки лаунчера, в обычном виде, без всяких звездочек. ну а в окне добавления\редактирования делать наверное это лишнее, ну или только если для частных случаев.
|
 Отправлено: Вчера, в 00:50
(спустя 25 минут)
AZJIO
  - Стаж: 8 лет
- Сообщений: 1364
- Репутация:127[+] [-]
|
Stranger13, я не понимаю, зачем обычный лаунчер подводить к какому то специфическому формату какой либо сборки? А завтра придёт ещё чел и скажет а сделай-ка мне коня в кубе. Для начала автору нужно определится что это за лаунчер, что он будет делать. 1. Запускать проги, как замена меню пуск, в котором реклама, рекомендации, поиск по интернету, поиск по файлам. 2. Установщик программ. То есть как WPI, с показом информации о проги, которые клиент видит в первый раз и как-то ориентируется. 3. Кому-то надо запустить проги разом. Замена автостарта что-ли. А там ещё захочется прибить запущенные проги разом. Вот просто почитаешь лог обновлений WPI и думаешь, так это же специфический софт, так и контроль процесса установки. Невозможно тупо сделать одновременно и WPI и лаунчер и автостартер, я уж не говорю про совсем специфические задачи, такие как анализировать чужой пакет со скриптами, ага, распаковать запустить скрипт, удалить следы распаковки. Совместить лаунчер с функцией WPI ещё можно, если самостоятельно ждать установки и кликать следующее. Но реально контролировать процесс и автоматом запускать следующее это знать в том числе формат установщика, который может в конце запустить какой нибудь батник, а родительский процесс самзавершится и лаунчер будет думать что завершено, а на деле нет и будет параллельно две проги ставить и создавать дефрагментацию. Если автор пойдёт по неправильному пути, вложит туда второстепенные вещи по уговору, то потом проворачивать такой код будет тяжело, то есть встраивание какой то фичи потребует проверки все ли модули после этой фичи будут стабильно работать.
|
 Отправлено: Вчера, в 01:55
(спустя 1 час 4 минуты)
motorboy
 - Стаж: 12 дней
- Сообщений: 18
- Репутация:5[+] [-]
|
Согласен с AZJIO. Не буду добавлять запуск специфических запароленных архивов. Если надо запустить прогу с паролем - поможет ключ -p12345 в аргументах командной строки. Все о чем просили я в лаунчер уже добавил (кроме увеличения иконок. этим займусь тогда когда все будет работать стабильно и запросов больше не будет). Добавлена версия 1.2 -Добавлено Hover меню в трее. -Добавлен 12 размер шрифта (может кому пригодится). -Теперь в режиме запуска одним щелчком мышки при наведении курсора на прогу показывается описание. -Добавлен запуск без ключей для Администратора и Системы. -Исправлены вылеты и баги при удалении программ клавишей Del. Добавлен фильтр скрытия програм для: -WindowsPE -Windows normal -Windows x86 -Windowsx64 Скрытые программы будут отображаться при поиске и при отображении всех программ. Их фон будет подсвечен красным цветом.
|
AZJIO
  - Стаж: 8 лет
- Сообщений: 1364
- Репутация:127[+] [-]
|
motorboy, кинул пачку ярлыков своих программ и DateTime прописалась с именем RegExp. Остальные норм. Её основное отличие от остальных - она запускается от админа. Возможно не получила доступ к имени и взяла из старого буфера. Думаю надо обнулять переменную и если не получено имя то брать его из имени исполняемого файла. При добавлении группы вставляется "Новая группа". Думаю этот текст не нужен, так как надо его затирать. Если пользователь нажмёт ОК с пустой группой надо вставить "Новая группа", а если крестик, то отменить. Но каждый раз затирать текст даже если можно нажать Ctrl+A и потом печатать, а кто-то сначала нажмёт Delete или вообще будет стирать текст многократным Delete, то будут недовольны. Это InputRequester? Походу да, проверил, у меня также, поле узкое по высоте, текст плохо вмещается. Шрифт у себя выбрал 12 я таким пользуюсь, либо 11, либо 12. И в настройках тексты чекбоксов не умещаются. Может если пользователь выбрал шрифт 12, то сделать коэффициент ширины и полей для окна? Или зарегистрировать функцию изменения размера окна. А почему не определить язык ОС при старте? Или если боишься ложного включения языка и пользователь не сможет переключить (хотя по иконке понятно где настройки), то выдать мессагу на английском типа "Switch to Russian" (если определёна русская ОС), тут любой поймёт. А также если найден внешний файл Language, то считываю с него. Заметил что берётся иконка 32х32 и трансформируется в 16х16, потому что расплывчатая и у некоторых у меня другая форма, есть различия между 32 и 16. Проверь на нерабочих ярлыках, добавил из папки, где есть нерабочие, снёс все ярлыки, остались живые только группы. И после этого надо перезапустить, потому что ничего не добавляет. С проги Everything не может взять значок. Если добавляется дубликат в ту же группу, вроде напрашивается запрос типа "Добавить дубликаты прог?", по крайней мере если все значения совпадают. А размер программы чего такой большой? Вроде графики особой нет, на 200-500 кб тянет. Или все модули графики и регвыров добавлены? Можно ещё добавить предупреждения при добавлении кучи файлов о не исполняемых файлах (т.е. кроме exe, lnk, cmd, bat, scr). Когда один это обдумано, а когда кучей просто в папке могут затесаться другие файлы. Ещё как вариант добавление папки расценивать как добавление категории с именем папки, а лежащие в корне ярлыки добавляются во вновь созданную категорию.
|
 Отправлено: Вчера, в 19:38
(спустя 12 часов)
motorboy
 - Стаж: 12 дней
- Сообщений: 18
- Репутация:5[+] [-]
|
106641кинул пачку ярлыков своих программ и DateTime прописалась с именем RegExp. Остальные норм. Её основное отличие от остальных - она запускается от админа. Возможно не получила доступ к имени и взяла из старого буфера. Думаю надо обнулять переменную и если не получено имя то брать его из имени исполняемого файла. Как происходит добавление ярлыков в лаунчере . Когда в окно бросается ярлык 1. из ярлыка извлекается путь к файлу на который он ссылается 2. извлекаются параметры коммандной строки если они есть 3. пытаемся получить имя проги из файла и если его нет то используем в качестве имени имя файла без расширения .4 Получаем иконку из файла. Так что все должно работать. Возможно DateTime имеет имя RegExp в самом файле (можно посмотреть в свойствах файла). -106641При добавлении группы вставляется "Новая группа". Думаю этот текст не нужен, так как надо его затирать. Если пользователь нажмёт ОК с пустой группой надо вставить "Новая группа", а если крестик, то отменить. Но каждый раз затирать текст даже если можно нажать Ctrl+A и потом печатать, а кто-то сначала нажмёт Delete или вообще будет стирать текст многократным Delete, то будут недовольны. Это исправлю. -106641Это InputRequester? Походу да, проверил, у меня также, поле узкое по высоте, текст плохо вмещается. Шрифт у себя выбрал 12 я таким пользуюсь, либо 11, либо 12. И в настройках тексты чекбоксов не умещаются. Может если пользователь выбрал шрифт 12, то сделать коэффициент ширины и полей для окна? Или зарегистрировать функцию изменения размера окна. Шрифт интерфейса лаунчера Segoeui 9. Я специально вшил его в ЕХЕ что бы избежать таких багов (в настройках тексты чекбоксов не умещаются) потому размер ехе такой большой - файл шрифта 980 кб. Когда выбирается шрифт в настройках то он применяется только к списку групп и програм. На другие элементы интерфейса он влиять не должен. Я пробовал изменять размер шрифта по умолчанию в винде а так же DPI. В окне настроек лаунчера ничего не менялось. Все тексты умещались. Не знаю почему у Вас так происходит. Но я наверное сделаю окно настроек шире. Если можно скинте скрин окна. Хочу посмотреть как это вглядит. -106641А почему не определить язык ОС при старте? Или если боишься ложного включения языка и пользователь не сможет переключить (хотя по иконке понятно где настройки), то выдать мессагу на английском типа "Switch to Russian" (если определёна русская ОС), тут любой поймёт. А также если найден внешний файл Language, то считываю с него. Сделаю при первом запуске лаунчера маленькое окошко где можно будет выбрать язык. -106641Заметил что берётся иконка 32х32 и трансформируется в 16х16, потому что расплывчатая и у некоторых у меня другая форма, есть различия между 32 и 16. Посмотрю в коде. Возможно где то ошибка и указано загружать иконки размером 16х16. -106641Проверь на нерабочих ярлыках, добавил из папки, где есть нерабочие, снёс все ярлыки, остались живые только группы. И после этого надо перезапустить, потому что ничего не добавляет. С проги Everything не может взять значок. Мне не удалось воспроизвести этот баг. Опишите подробнее последовательность действий приведшую к этому багу. Иконку для Everything (и некоторых других прог) не удается получить. Например Everything находится "C:\Program Files\Everything\Everything.exe", а лаунчер получает путь "C:\Program Files (x86)\Everything\Everything.exe". С этим буду разбираться. -106641Если добавляется дубликат в ту же группу, вроде напрашивается запрос типа "Добавить дубликаты прог?", по крайней мере если все значения совпадают. Сделаю. -106641Можно ещё добавить предупреждения при добавлении кучи файлов о не исполняемых файлах (т.е. кроме exe, lnk, cmd, bat, scr). Когда один это обдумано, а когда кучей просто в папке могут затесаться другие файлы. Это тоже сделаю. -106641Ещё как вариант добавление папки расценивать как добавление категории с именем папки, а лежащие в корне ярлыки добавляются во вновь созданную категорию. Здесь думаю сделать так. Если папка брошена на список категорий - добавлять группу, сканировать папку (и подпапки) на наличие исполняемых файлов и добавлять их в эту группу. Если попадутся левые файлы то их потом можно будет удалить из группы.
|
Страница 3 из 4
Текущее время: 14-Мар 00:08
Часовой пояс: UTC + 3
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете прикреплять файлы к сообщениям Вы можете скачивать файлы
|
|