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

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

    [+] [-]
rekshd
Пока занят новой утилиткой, но возможно сделать кнопку "валидация", то есть проверка исправности параметров. Это частично сравнимо с кнопкой "Экспорт", пробежаться по реестру в поисках всех меню, проверить в них набор программ и проверить что эти программы существуют в разделе списка программ. Изначально зная как устроено система построения меню очень очевидно, что добавив новое название (1 раз) это не заставит появится это в нескольких типах расширений файлов, очевидно что в них есть какая то ссылка на этот пункт, а значит её тоже надо поправлять. То есть либо делать самостоятельно, зная что происходит, либо доверится программе, ведь я же не могу предугадывать и делать кучу защит от неизвестно чего. Также учесть что не я делаю к примеру невидимыми пункты, а винда, так как это движок винды, который она предложила пользователям использовать и требует подчиняться их правилам, а я лишь сделал это программно для удобства, зная, куда что прописать чтобы это работало и не вспоминать каждый раз заново формат этих записей, так как через год начинаешь снова гуглить и читать куда что прописывать, да ещё ручная работа.
На счёт прописать сразу в несколько расширений идея интересная, то есть через запятую указать несколько "txt, ini, cfg, log". Но сейчас как вариант можно сделать экспорт в reg-файл и там тупо дублировать блоки (Ctrl+D) и подменять расширения и разом добавить. Кстати там же можно увидеть и другие косяки, например забыл прописать иконку меню, скопировал строку с пропиской иконки и вставил в каждый блок, где её нет. А потом можно даже иные иконки указать как хотел. Я просто не вижу смысла менять иконки, так как изначально ты их видишь сразу и знаешь что это меню дополнительных программ, а если это будет выглядеть по разному, то путаница.
И кстати на счёт пакетного добавления меню для текстовых файлов "txt, ini, cfg, log" или для медиа, или для архивов, то тут можно подумать как это оформить через ini-файл, в нём указать типы расширений, а в интерфейсе проги предлагать добавить меню одной из групп родственных файлов.

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

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

    [+] [-]
возможно сделать кнопку "валидация", то есть проверка исправности параметров
Это самое то, что нужно ay
На счёт прописать сразу в несколько расширений идея интересная, то есть через запятую указать несколько "txt, ini, cfg, log"
Точнее не сформулируешь bs
Кстати, снимаю вопрос по *.* поскольку в пункте "все файлы*" уже сейчас можно спокойно прописать любую программу и у любых файлов она окажется в меню
Я просто не вижу смысла менять иконки, так как изначально ты их видишь сразу и знаешь что это меню дополнительных программ, а если это будет выглядеть по разному, то путаница.
Ну у меня, например, ручками сделаны в контекстном меню ссылки на три разные сборки AkelPad, которые я использую для разных задач. И у каждого пункта своя иконка и название, чтоб быстро можно было визуализировать чем открывать просматриваемый или редактируемый файл. Если б я не сделал через реестр эти разные иконки, то эти пункты пришлось бы различать тока по названиям. Родная иконка то у AkelPad одна и таже.
на счёт пакетного добавления меню для текстовых файлов "txt, ini, cfg, log" или для медиа, или для архивов, то тут можно подумать как это оформить через ini-файл, в нём указать типы расширений, а в интерфейсе проги предлагать добавить меню одной из групп родственных файлов.
ДА, так будет оптимально
Добавлено через 7 минут 16 секунд:
Также учесть что не я делаю к примеру невидимыми пункты, а винда, так как это движок винды, который она предложила пользователям использовать и требует подчиняться их правилам, а я лишь сделал это программно для удобства,
Я вообще не могу и не имею претензий к Вам. Вы делаете отличное дело.
Но раз уж Винда по своей натуре любит делать нам подлянки, то есть смысл учесть этот момент в Вашей программе.
И кнопка Валидация параметров будет самое то af
Сейчас то я найду в регфайле этот косяк сразу, а первоначально пришлось поиграть в игру "Найди 10 отличий" пока я не понял где винда сделала подлянку. ag
Благо играть в такие игры я люблю
Добавлено через 26 минут 56 секунд:
А как насчёт управляемого порядка следования пунктов в меню "Программы" ?
В своё время мне подобную операцию пришлось это делать через ручную правку регфайла.
У себя для трех разных AkelPad-ов сделал три узла
[b]HKEY_CLASSES_ROOT\*\shell\Z1[/b]
[b]HKEY_CLASSES_ROOT\*\shell\Z2[/b]
[b]HKEY_CLASSES_ROOT\*\shell\Z3[/b]
Теперь эти пункты в контекстном меню проводника всегда идут в том порядке, который я им указал
Я это финт с реестром подсмотрел у Sodrumа ah
Ведь SubMenu Windows 7-10 уже сейчас добавляет префикс u к программе
Насколько сложно интегрировать такой управляемый порядок пунктов ?
Тогда пункты как в меню "Программы", так и в генерируемом контекстном меню будут в том порядке,
который выбрал конкретный пользователь. А не в том, который нам навязывают господа из MS

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

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

    [+] [-]
rekshd
Пункты в том порядке в котором они добавлялись. Чтобы изменить порядок надо изменить их порядок в параметре SubCommands. То есть можно было бы экспортировать данные и изменять порядок или при добавлении проги нажать кнопку "Смотреть последнюю запись в реестре" и править в самом реестре, в том числе удалить добавленную прогу, которая добавлена, чтобы прога сделала запись в реестр и можно было прыгнуть в неё. Хотя можно сделать лишнюю кнопку, чтобы прыгнуть в реестр выбрав расширение файла. В любом случае изменение порядка не проблема. Если делать это типа программно, то будет много когда, а прибыток не большой, то есть создавать вызов дочернего окна, в нём элемент списка, парсить строку по элементам, выдать в список, прописать функций перетягивания элементов в окне (рассказать пользователю что такое возможно) или сделать кнопки вверх/вниз для перемещения элемента, прописать эти события по работе с новым окном в основной цикл событий, разделив события по принадлежности окна. В общем всё возможно, только насколько стоит эта игра свеч.
уже сейчас добавляет префикс u к программе
это сделано для того чтобы моя программа не добавляла в свой интерфейс другие программы созданые авторами других прог, в том числе и виндовые, там список в разы больше, какой смысл добавлять этот мусор, который будет мешать выбирать ваши проги?
Кстати можно сделать копию проги и в настройках изменить префикс и значок и имя меню, тогда можно генерировать второе меню.

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

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

    [+] [-]
Если делать это типа программно, то будет много когда, а прибыток не большой
Если кодировать много, то тогда под себя буду править ручками в реестре. не беда ar

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

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

    [+] [-]
rekshd, идейка следующая: чтобы упростить кодирование, не создавая дочерних окон если при указании расширения файла будет префикс "=" например "=архивы", то прога из ini возьмёт данные параметра "архивы", то есть архивы=zip,rar. Если в строке есть запятая, то идёт перечисление расширений. Также надо сделать возможность множественного выбора программ в списке, тогда будет за раз сформировано меню. Но тогда непонятно как установить порядок прог в меню. Пробелы в строке будут удалятся, так что они мешать не будут, а может и их использовать как разделитель.
Может в ini добавить список путей к прогам? И добавить кнопку импортирования прог, тогда формирование списка прог будет тоже автоматизировано. Прога только проверяет существование файлов и добавляет существующие. То есть можно добавить очень много прог, чтобы на любом компе все необходимое было добавлено. Ну и добавить флаг "спрашивать", чтобы при перечислении добавляемых соглашаться (enrer) или пропускать.

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

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

    [+] [-]
AZJIO,
идейка следующая: чтобы упростить кодирование, не создавая дочерних окон если при указании расширения файла будет префикс "=" например "=архивы", то прога из ini возьмёт данные параметра "архивы", то есть архивы=zip,rar. Если в строке есть запятая, то идёт перечисление расширений.
Как говорят - Просто и со вкусом.
af
Но тогда непонятно как установить порядок программ в меню. Пробелы в строке будут удалятся, так что они мешать не будут, а может и их использовать как разделитель.
А можно для этого использовать цифры ? Ведь префикс то уже есть.
То есть сейчас, например, пишется так:
u.программа1
u.программа2
и т.д.
А если сделать так:
u1.программа1
u2.программа2
и т.д.
То проги и будут в установленном пользователем порядке
Получится такая конструкция ? ah

@@@@@@@

Добавлено через 16 минут 23 секунды:
Может в ini добавить список путей к прогам? И добавить кнопку импортирования прог, тогда
формирование списка прог будет тоже автоматизировано. Прога только проверяет существование файлов и добавляет существующие. То есть можно добавить очень много прог, чтобы на любом компе все необходимое было добавлено. Ну и добавить флаг "спрашивать", чтобы при перечислении добавляемых соглашаться (enrer) или пропускать.
А вот так будет вообще круто. Делаешь пресет к порташкам один раз и усё !!! ar

@@@@@@@

Добавлено через 33 минуты 4 секунды:
Пробелы в строке будут удалятся, так что они мешать не будут, а может и их использовать как разделитель.
Лишние пустоты в виде разделителя увеличат вертикальный размер контекстного меню, что не есть гуд...
Может Лучше вот так сделать ?

Эти разделители перед и после тотала реализованы через реестр следующим регфайлом:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\Total Commander]
"Icon"="D:\\Portable\\Total Commander\\Totalcmd.ico"
"Position"="Top"
@="Total Commander 8.51a"
"SeparatorBefore"=""
"SeparatorAfter"=""
[HKEY_CLASSES_ROOT\*\shell\Total Commander\Command]
@="D:\\Portable\\Total Commander\\Totalcmd.exe /O /T /P=L \"%1\""
Правда, для вложенных меню синтаксис будет немного другой...
Тама должно быть для появления разделителя кажись так:
"CommandFlags"=dword:00000020
Пример - полный регфайл для очистки ревизитов папки :
Windows Registry Editor Version 5.00
; Очистить все файловые атрибуты
[HKEY_CLASSES_ROOT\Directory\shell\Attributes\shell\003flyout]
"MUIVerb"="Удалить все атрибуты только для папки"
[HKEY_CLASSES_ROOT\Directory\shell\Attributes\shell\003flyout\command]
@="cmd /c attrib -r -a -s -h -i \"%1\""
[HKEY_CLASSES_ROOT\Directory\shell\Attributes\shell\004flyout]
"CommandFlags"=dword:00000020
"MUIVerb"="Удалить все атрибуты для папки, вложенных папок и файлов"
[HKEY_CLASSES_ROOT\Directory\shell\Attributes\shell\004flyout\command]
@="cmd /c attrib -r -a -s -h -i \"%1\" & attrib -r -a -s -h -i \"%1\\*.*\" /s /d"

@@@@@@@

ah Прошу перечитать пост, поскоку я его подредактировал и уточнил некоторые мысли ... ah


Последний раз редактировалось: rekshd (2021-11-30 22:35), всего редактировалось 1 раз

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

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

    [+] [-]
Тестовая версия (на яндексе), сильно не тестил, те функции которые изменял конечно же проверял. Ещё предстоит улучшение.
1. Сообщения пока не убирал, но если добавлять пакетно приходится жать Enter, например для 10 расширений добавляем 5 пунктов, соответственно жмём 50 раз, а то и 100. Также если запись уже есть то тоже сообщение что прога есть в списке, надо флаг "по тихому".
2. Удаление тоже пакетно. Для теста экспортируем в рег-файл все свои меню, и далее можно обнулить разными методами либо укзав список раширения программе, либо как я перед путями разделов реестра добавил минус [-HK... а потом стал добавлять/удалять группами. Работает перечисление расширений "wav mp3", работает из ini, то есть "=музыка", аналогично и удаление. Два плюсика - импорт прог из ini.
3. Текст заголовка указания расширений не умещается. Буду изменять.
Еще хотел "Дублировать расширение", тут выбираем допустим txt как исходное и например log как назначение, полезно в случае если меню уже добавлено, но надо добавить для какого нибудь нового расширения. То есть ничего не настраивая просто скопировать SubCommands реестра из одного в другое.
Подумываю кнопку "Удалить все меню" - полезно для эксперимента и может для дела, чтобы переделать заново.
90138@@@@
убери лишние, у меня теперь тема расширилась на 2 экрана, чтобы читать надо горизонтальный ползунок двигать то вправо то влево на каждой строке. У меня шрифт крупный, а экран 1280
Ещё обновил, добавил флаг NoMultiMB=1, который запрещает показ диалоговых окон для пакетных обработок.

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

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

    [+] [-]
AZJIO,
убери лишние
Так лучше стало ? Извиняюсь - не подумал о меньших разрешениях экрана... У меня то 1920...
Строчку этих цветных собак сделал, чтоб визуально разделить разные мысли в одном посте.
Если этот разделитель будет коротким (как сейчас), то будет ли так удобно ?
Пошёл тестить обнову af
Добавлено через 45 минут 54 секунды:
Пути тестовая версия сканирует корректно.
Имеющиеся у меня программы она нашла. неИмеющиеся - не добавила.

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

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

    [+] [-]
rekshd, в крайнем случае можно через десять пробелы вставлять, тогда хотя бы они будут на новую строку переносится.
Ещё обновил, пункт "Удалить программу из списка" тоже удаляет все выделенные. И функцию удалить/добавить пункт объединил в одну, разделив действия флагами, всего то 2 кб сэкономил, но и логику писать для одной функции легче.

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

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

    [+] [-]
После переключения NoMultiMB = с 1 на 0 в SubMenuWin7_10_x64.ini и при наличии уже имеющегося списка программ SubMenu Windows 7-10 x64 при запуске сразу вылетает с ошибкой.
После удаления ручками в реестре этих записей программа запускается.
Эта же версия для "все файлы" меню создаёт прекрасно, а вот для "Типы файлов" ни в какую ...


Последний раз редактировалось: rekshd (2021-11-30 23:45), всего редактировалось 1 раз

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

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

    [+] [-]
90176 при запуске сразу вылетает с ошибкой
Точнее напиши как воспроизвести проблему. Я удаляю пункты, добавляю, у меня ничего не падает. При NoMultiMB = 0

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

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

    [+] [-]
Точнее напиши как воспроизвести проблему. Я удаляю пункты, добавляю, у меня ничего не падает. При NoMultiMB = 0
Да это какой то глюк был. Сейчас перегрузил машину (она у меня заморожена так что все изменения анулируются)
Завёл снова с регфайла старый список из версии от 261121. Без вылетов ...

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

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

    [+] [-]
Кстати я хотел попробовать изменять порядок упрощённым способом, вылетает мессага типа
1 AkelPad
2 Notepad++
3 Блокнот
укажите число, например 231 и порядок будет
Notepad++
Блокнот
AkelPad
Но удручает, что диалоговое окно ввода данных выдаёт строку подсказку в одну строку и заданной ширины. В AutoIt3 число строк не ограничено и ширина любая. А тут пришлось даже сократить тексты в заголовке и подсказке, чтобы уместились. Можно конечно сначала мессагу показать а потом диалог ввода числа, но это уже плохой костыль.

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

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

    [+] [-]
Тестирую в режиме "Все файлы".
1. Окно программы не сохраняет размер, а желательно чтоб сохраняло. Но это косметика.
2. Стандартные методы выделения с Ctrl и Shift работают прекрасно. Но напрашивается задействовать типовую комбинацию Ctrl+A для выделения всего списка программ
3. При добавлении и удалении множества программ приходится нажимать сообщения об добалении\удалении.
Но Вы же потом хотели это отключить через ini ab
Добавлено через 12 минут 5 секунд:
Вообщем, мульти добавление и удаление происходит так, как Вы задумывали.
С добавлением программ из списка ini тоже усё отлично.
Немного отвлекусь. Поужинаю и посмотрю Соловьёва по второму каналу чуток. Интересно ж знать, что в империи происходит ag
потом снова сяду разбираться про добавление в типы файлов
PS Кстати, спасибо Вам за 1by1.exe. не знал про этот проигрыватель. Пользуюсь AIMP4.
Малыш понравился. один тока минус у него. Похоже пашет тока в 16bit ...
Но как запасной проигрыватель очень даже хорош. Особенно из-за миниатюрности.

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

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

    [+] [-]
901803. При добавлении и удалении множества программ приходится нажимать сообщения об добалении\удалении.
А зачем было ставить NoMultiMB = 0
Оно ж для того и было добавлено чтобы мессагами не замучить. При чём это работает только для пакетных действий, No - Нет, Multi - множественных, MB - Message Box - ящиков сообщений, итого "Нет множественных сообщений.
90180очень даже хорош
вообще я выбирал прогу, чтобы поискать хорошую музыку. В этом плане прога справляется отлично, там открывается папка и двигаешься по файлам всё на хоткеях, даже воспроизведение можно прыгнуть по 20-30% от начала, и буквально пару сек хватит послушать, чтобы оценить, твоё это или нет.

Страница 3 из 12


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

Текущее время: 21-Ноя 19:57

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


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