AZJIO
- Стаж: 6 лет 8 месяцев
- Сообщений: 1322
- Репутация:127[+] [-]
|
rekshd Добавил обработку "Applications" в экспорт и смену иконок и меню.90373 По факту ведь меню создавалось не под "типы файлов" а под программу, их обрабатывающую. Я прав ? да... Под графику сгенерировал меню, если есть индивидуальные типы файлов, для них отдельно можно подкорректировать. Причём нельзя заранее определить группу, например есть программа открывает djvu и pdf, хотя форматы далеко не одинаковы, но для этой программы можно определить эту группу. Можно даже группу назвать по названию программ, например AIMP= mp3,wav,wma Notepad++=txt,log,cfg,conf,lst и т.д. тогда указывая группу JpegView, в ней не будет psd
|
rekshd
- Стаж: 5 лет 11 месяцев
- Сообщений: 331
- Репутация:7[+] [-]
|
AZJIO,Можно даже группу назвать по названию программ, например AIMP= mp3,wav,wma Notepad++=txt,log,cfg,conf,lst и т.д. тогда указывая группу JpegView, в ней не будет psd А ведь это почти готовый "Ассоциатор" для произвольных расширений и произвольных программ ! Полезная штука была бы для моментальной ассоциации группы типов файлов с портабл программами в W10 Обнова как обычно, обновлённая версия на яндекДиске ? Проверил. Теперь программа корректно экспортирует в моем случае (с двумя обработчиками графики) и удаляет такие меню.
|
AZJIO
- Стаж: 6 лет 8 месяцев
- Сообщений: 1322
- Репутация:127[+] [-]
|
rekshd Обновил Добавил сортировку, смотри пример файла SubMenuWin7_10_Sort.ini Но делать ручками, нет перетаскивания и сохранения, можно только ручками создать ini-файл сортировки и он подхватится. Чтобы получить список легким способом - экспортировать данные и с помощью регулярного выражения получить группы:(?m)CommandStore\\shell\\([^\]\[\\]+?)\]
|
rekshd
- Стаж: 5 лет 11 месяцев
- Сообщений: 331
- Репутация:7[+] [-]
|
|
Отправлено: 07-Дек-2021 20:27
(спустя 1 час 25 минут)
AZJIO
- Стаж: 6 лет 8 месяцев
- Сообщений: 1322
- Репутация:127[+] [-]
|
"CommandFlags"=dword:00000020 и "CommandFlags"=dword:00000040 в одном блоке одновременно вроде не работают а если 60 вместо 40 и 20? Ctrl+c сделаю.
|
Отправлено: 07-Дек-2021 21:59
(спустя 1 час 32 минуты)
rekshd
- Стаж: 5 лет 11 месяцев
- Сообщений: 331
- Репутация:7[+] [-]
|
AZJIO,а если 60 вместо 40 и 20? Ну я же затупил. Действительно 60 делает сверху и снизу одновременно А где Вы нашли информацию про "CommandFlags"=dword:00000060 ? За !!! час !!! Нашел тока косвенное упоминаниеTo control the placement of the separator use either 0x40 (separator below) or 0x20 (separator above). Following values are supported, sum to combine features Тупой Yandex и исчо более тупой Google выдают информацию тока про "CommandFlags"=dword:00000020 и "CommandFlags"=dword:00000040 Из поисковых систем они превратились в торгашеские и рекламные. Чем дальше, тем всё хуже свои функции выполнют ...
|
rekshd
- Стаж: 5 лет 11 месяцев
- Сообщений: 331
- Репутация:7[+] [-]
|
|
Отправлено: 08-Дек-2021 07:22
(спустя 1 час 2 минуты)
AZJIO
- Стаж: 6 лет 8 месяцев
- Сообщений: 1322
- Репутация:127[+] [-]
|
90428Похоже, что программа не делает более 17 пунктов Из экспериментов я бы в первую очередь попробовал бы укоротить строки, чтобы строка в "SubCommands" была при той же длине вмещала больше пунктов. Кроме того я и раньше замечал когда прописываешь слишком много пунктов просто в контекстное меню они в какой то момент перестали появляться и начинаешь выбирать что удалить, удалил пункт касперского на проверку файла, и сразу появился ранее прописанный пункт, удалил восстановление файла - ещё один стал доступен, и т.д.90426А где Вы нашли информацию про "CommandFlags"=dword:00000060 ? дедукция ))) Скачай мою прогу - конвертер чисел, установи из Hex в Bin, введи 20 получишь 100000, введи 40 получишь 1000000. Для десятичных чисел это 32 и 64. Все числа кратные 2, точнее 2 в степени числа 1...до бесконечности являются битовыми флагами, то есть 1 2 4 8 16 и т.д. это 2 в степени 0 равно 1, 2 в степени 1 равно 2, 2 в степени 2 равно 4 и т.д., в бинарном виде это 1 передвигающаяся в разрядах, то есть 1 это 01, 2 это 10, 4 это 100, 8 это 1000, это всё можно проверить установив Dec в Bin. То есть в одном байте 8 бит, то есть мы в одном числе можем содержать 8 флагов. Это экономит память, на один флаг приходится 1 бит, а не 1 байт. В нашем примере числа 20 и 40 это битовый флаг, отличить его легко, один битовый флаг как уже сказал можно быть только 1 2 4 8 16 и т.д. 20 и 40 это в шестнадцатеричном формате. Очевидно что включив 2 флага одновременно они дадут включение двух опций, что и произошло. Читай тут
|
AZJIO
- Стаж: 6 лет 8 месяцев
- Сообщений: 1322
- Репутация:127[+] [-]
|
rekshd, качай обновление, появился пункт "Сохранить сортировку".
|
rekshd
- Стаж: 5 лет 11 месяцев
- Сообщений: 331
- Репутация:7[+] [-]
|
AZJIO,Круто Я б точно не догадался ... Тем более что у меня любовь к точным наукам отбили в политехе после 8 пар высшей математики в неделю. После Векторного анализа и службы в армии я оттуда сбежал на юридический Кстати, по моей ссылке на языке наших Заклятых "партнёров" написано, что есть исчо флаг "CommandFlags"=dword:00000008 Проверил - скрывает пункт меню. Во как !
строка в "SubCommands" была при той же длине вмещала больше пунктов Натурный эксперимент показал, что от длинны параметра (длинны списка) в "SubCommands" количество пунктов в меню не зависит. Зависит тока от количества самих этих пунктов. А как говорил дедушка Ленин В.И. "Практика - критерий истинности сознания" Похоже, где то в винде в реестре спрятан этот ограничивающий параметр. Но пока прямой атакой на поисковики и форумы ответа найти не удалось. Это чем то похоже на настройку винды, когда она не позволяет открыть контекстное меню для большого количества выделенных однотипных файлов. Ограничение стандартное в Винде кажись 15 файлов Но, например, WinAeroTweaker позволяет увеличить это количество с 15 до 37. И этот твик работает. Проверено. По аналогии думал, что и для количества пунктов в контекстном меню есть такой же твик. Но не нашел. Надо будет на руборде и киберфоруме исчо спросить. Может там кто знает...
Скачай мою прогу - конвертер чисел, установи из Hex в Bin, введи 20 получишь 100000, введи 40 получишь 1000000. Для десятичных чисел это 32 и 64. Все числа кратные 2, точнее 2 в степени числа 1...до бесконечности являются битовыми флагами, то есть 1 2 4 8 16 и т.д. это 2 в степени 0 равно 1, 2 в степени 1 равно 2, 2 в степени 2 равно 4 и т.д., в бинарном виде это 1 передвигающаяся в разрядах, то есть 1 это 01, 2 это 10, 4 это 100, 8 это 1000, это всё можно проверить установив Dec в Bin. То есть в одном байте 8 бит, то есть мы в одном числе можем содержать 8 флагов. Это экономит память, на один флаг приходится 1 бит, а не 1 байт. В нашем примере числа 20 и 40 это битовый флаг, отличить его легко, один битовый флаг как уже сказал можно быть только 1 2 4 8 16 и т.д. 20 и 40 это в шестнадцатеричном формате. Очевидно что включив 2 флага одновременно они дадут включение двух опций, что и произошло. Читай тут Упс ... это Я сразу завис. и пошол вспоминать Высшую математику Добавлено через 2 минуты: "Сохранить сортировку" проверил. Усё работает. Тока лучше назвать "Сохранение списка" А то ведь сейчас "Сохранить сортировку" - а сортировки то на этом этапе исчо и нету совсем ...
Последний раз редактировалось: rekshd (2021-12-09 17:11), всего редактировалось 1 раз
|
AZJIO
- Стаж: 6 лет 8 месяцев
- Сообщений: 1322
- Репутация:127[+] [-]
|
90450Тока лучше назвать "Сохранение списка" Так не понятно для чего, а в моем варианте сразу смысл. Мне дали комп настраивать, там 7-ка, пока тоже для файлов меню не появилось, для диска сделал 3 проги : чекдиск, сканер, и файлсайзсписок. Так как ты любитель меню, то посмотри прогу ContMenuFiles вроде так называется, у меня на сайте, на главной в параграфе для настройки винды, на 7-ке отлично работает, создает меню, только не вложенные, удобно если прог мало, одна-две. В том числе прописывает open для ассоциаций. И иконку файлов можно поменять, их можно взять из длл в проге восстановление иконок ассоциаций.
|
rekshd
- Стаж: 5 лет 11 месяцев
- Сообщений: 331
- Репутация:7[+] [-]
|
90541Так как ты любитель меню, то посмотри прогу ContMenuFiles вроде так называется, у меня на сайте Дак я про твой сайт и твои программы знаю кажись с 2013-2015 годов. TextCorrection пытался на замену пунто поставить . У меня на клавишах Logitech G510S ихний софт косячит с 4 версией пунто - макросы с G клавиш периодически вбивают не то что в них вложено (вместо русского и цифр абракадабра). Но что то не срослось ... ContMenuFiles уже давно в моей копилке. За что А вообще мне нравится сама процедура тестирования программ - это в своём роде моё хобби Ручным созданием контекстного меню, в том числе вложенного, пришлось заняться год назад. Найденные тогда инструменты либо совсем не делали то, что мне надо, либо делали слишком геморойно (как, например, у содрума). Покурил мануалы и сам склепал себе менюшки через регфайлы А вот когда ты начал дорабатывать SubMenu Windows 7-10 до меня дошло, что именно такой программы мне и не хватало год назад. Заодно закрепил в бортовом компьютере знания, полученные тогда. PS 1 Сейчас пересматривал твой сайт и обнаружил, что прога, которую я использую уже почти 10 лет, тоже твоя ! Это Process - шикарная штука. За неё особый респект PS 2 Ты планируешь исчо какие-то доработки SubMenu Windows 7-10 ?
|
rekshd
- Стаж: 5 лет 11 месяцев
- Сообщений: 331
- Репутация:7[+] [-]
|
AZJIO, Вопрос появился Есть вот такое субменю
Windows Registry Editor Version 5.00 ; Created by: Digdarshan Kavia ; Website: The Windows Club ; Tutorial: ; Attributes for Files [HKEY_CLASSES_ROOT\*\shell\Attributes] "MUIVerb"="Attributes" "Icon"="imageres.dll,-165" "SubCommands"="" [HKEY_CLASSES_ROOT\*\shell\Attributes\shell\001flyout] "MUIVerb"="Display all attributes for this file" [HKEY_CLASSES_ROOT\*\shell\Attributes\shell\001flyout\command] @="cmd /k attrib \"%1\"" ; Clear all file attributes [HKEY_CLASSES_ROOT\*\shell\Attributes\shell\002flyout] "CommandFlags"=dword:00000020 "MUIVerb"="Clear all attributes for this file" [HKEY_CLASSES_ROOT\*\shell\Attributes\shell\002flyout\command] @="attrib -r -a -s -h -i \"%1\"" ; Archive file attribute [HKEY_CLASSES_ROOT\*\shell\Attributes\shell\003flyout] "CommandFlags"=dword:00000020 "MUIVerb"="Set Archive attribute for this file" [HKEY_CLASSES_ROOT\*\shell\Attributes\shell\003flyout\command] @="attrib +a \"%1\"" [HKEY_CLASSES_ROOT\*\shell\Attributes\shell\004flyout] "MUIVerb"="Clear Archive attribute for this file" [HKEY_CLASSES_ROOT\*\shell\Attributes\shell\004flyout\command] @="attrib -a \"%1\"" ; Hidden file attribute [HKEY_CLASSES_ROOT\*\shell\Attributes\shell\005flyout] "CommandFlags"=dword:00000020 "MUIVerb"="Set Hidden attribute for this file" [HKEY_CLASSES_ROOT\*\shell\Attributes\shell\005flyout\command] @="attrib +h \"%1\"" [HKEY_CLASSES_ROOT\*\shell\Attributes\shell\006flyout] "MUIVerb"="Clear Hidden attribute for this file" [HKEY_CLASSES_ROOT\*\shell\Attributes\shell\006flyout\command] @="attrib -h \"%1\"" ; Not content indexed file attribute [HKEY_CLASSES_ROOT\*\shell\Attributes\shell\007flyout] "CommandFlags"=dword:00000020 "MUIVerb"="Set Not Content Indexed attribute for this file" [HKEY_CLASSES_ROOT\*\shell\Attributes\shell\007flyout\command] @="attrib +i \"%1\"" [HKEY_CLASSES_ROOT\*\shell\Attributes\shell\008flyout] "MUIVerb"="Clear Not Content Indexed attribute for this file" [HKEY_CLASSES_ROOT\*\shell\Attributes\shell\008flyout\command] @="attrib -i \"%1\"" ; Read-only file attribute [HKEY_CLASSES_ROOT\*\shell\Attributes\shell\009flyout] "CommandFlags"=dword:00000020 "MUIVerb"="Set Read-Only attribute for this file" [HKEY_CLASSES_ROOT\*\shell\Attributes\shell\009flyout\command] @="attrib +r \"%1\"" [HKEY_CLASSES_ROOT\*\shell\Attributes\shell\010flyout] "MUIVerb"="Clear Read-Only attribute for this file" [HKEY_CLASSES_ROOT\*\shell\Attributes\shell\010flyout\command] @="attrib -r \"%1\"" ; System file attribute [HKEY_CLASSES_ROOT\*\shell\Attributes\shell\011flyout] "CommandFlags"=dword:00000020 "MUIVerb"="Set System attribute for this file" [HKEY_CLASSES_ROOT\*\shell\Attributes\shell\011flyout\command] @="attrib +s \"%1\"" [HKEY_CLASSES_ROOT\*\shell\Attributes\shell\012flyout] "MUIVerb"="Clear System attribute for this file" [HKEY_CLASSES_ROOT\*\shell\Attributes\shell\012flyout\command] @="attrib -s \"%1\"" ; Directories (folders) [HKEY_CLASSES_ROOT\Directory\shell\Attributes] "MUIVerb"="Attributes" "Icon"="imageres.dll,-165" "SubCommands"="" [HKEY_CLASSES_ROOT\Directory\shell\Attributes\shell\001flyout] "MUIVerb"="Display all attributes for this folder only" [HKEY_CLASSES_ROOT\Directory\shell\Attributes\shell\001flyout\command] @="cmd /k attrib \"%1\"" [HKEY_CLASSES_ROOT\Directory\shell\Attributes\shell\002flyout] "MUIVerb"="Display all attributes for this folder, subfolders and files" [HKEY_CLASSES_ROOT\Directory\shell\Attributes\shell\002flyout\command] @="cmd /k attrib \"%1\" & attrib \"%1\\*.*\" /s /d" ; Clear all file attributes [HKEY_CLASSES_ROOT\Directory\shell\Attributes\shell\003flyout] "CommandFlags"=dword:00000020 "MUIVerb"="Clear all attributes for this folder only" [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] "MUIVerb"="Clear all attributes for this folder, subfolders and files" [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" ; Archive file attribute [HKEY_CLASSES_ROOT\Directory\shell\Attributes\shell\005flyout] "CommandFlags"=dword:00000020 "MUIVerb"="Set Archive attribute for this folder only" [HKEY_CLASSES_ROOT\Directory\shell\Attributes\shell\005flyout\command] @="cmd /c attrib +a \"%1\"" [HKEY_CLASSES_ROOT\Directory\shell\Attributes\shell\006flyout] "MUIVerb"="Set Archive attribute for this folder, subfolders and files" [HKEY_CLASSES_ROOT\Directory\shell\Attributes\shell\006flyout\command] @="cmd /c attrib +a \"%1\" & attrib +a \"%1\\*.*\" /s /d" [HKEY_CLASSES_ROOT\Directory\shell\Attributes\shell\007flyout] "MUIVerb"="Clear Archive attribute for this folder only" [HKEY_CLASSES_ROOT\Directory\shell\Attributes\shell\007flyout\command] @="cmd /c attrib -a \"%1\"" [HKEY_CLASSES_ROOT\Directory\shell\Attributes\shell\008flyout] "MUIVerb"="Clear Archive attribute for this folder, subfolders and files" [HKEY_CLASSES_ROOT\Directory\shell\Attributes\shell\008flyout\command] @="cmd /c attrib -a \"%1\" & attrib -a \"%1\\*.*\" /s /d" ; Hidden file attribute [HKEY_CLASSES_ROOT\Directory\shell\Attributes\shell\009flyout] "CommandFlags"=dword:00000020 "MUIVerb"="Set Hidden attribute for this folder only" [HKEY_CLASSES_ROOT\Directory\shell\Attributes\shell\009flyout\command] @="cmd /c attrib +h \"%1\"" [HKEY_CLASSES_ROOT\Directory\shell\Attributes\shell\010flyout] "MUIVerb"="Set Hidden attribute for this folder, subfolders and files" [HKEY_CLASSES_ROOT\Directory\shell\Attributes\shell\010flyout\command] @="cmd /c attrib +h \"%1\" & attrib +h \"%1\\*.*\" /s /d" [HKEY_CLASSES_ROOT\Directory\shell\Attributes\shell\011flyout] "MUIVerb"="Clear Hidden attribute for this folder only" [HKEY_CLASSES_ROOT\Directory\shell\Attributes\shell\011flyout\command] @="cmd /c attrib -h \"%1\"" [HKEY_CLASSES_ROOT\Directory\shell\Attributes\shell\012flyout] "MUIVerb"="Clear Hidden attribute for this folder, subfolders and files" [HKEY_CLASSES_ROOT\Directory\shell\Attributes\shell\012flyout\command] @="cmd /c attrib -h \"%1\" & attrib -h \"%1\\*.*\" /s /d" ; Not content indexed file attribute [HKEY_CLASSES_ROOT\Directory\shell\Attributes\shell\013flyout] "CommandFlags"=dword:00000020 "MUIVerb"="Set Not Content Indexed attribute for this folder, subfolders and files" [HKEY_CLASSES_ROOT\Directory\shell\Attributes\shell\013flyout\command] @="cmd /c attrib +i \"%1\" & attrib +i \"%1\\*.*\" /s /d" [HKEY_CLASSES_ROOT\Directory\shell\Attributes\shell\014flyout] "MUIVerb"="Clear Not Content Indexed attribute for this folder, subfolders and files" [HKEY_CLASSES_ROOT\Directory\shell\Attributes\shell\014flyout\command] @="cmd /c attrib -i \"%1\" & attrib -i \"%1\\*.*\" /s /d" ; Read-only file attribute [HKEY_CLASSES_ROOT\Directory\shell\Attributes\shell\015flyout] "CommandFlags"=dword:00000020 "MUIVerb"="Set Read-Only attribute for this folder and subfiles" [HKEY_CLASSES_ROOT\Directory\shell\Attributes\shell\015flyout\command] @="cmd /c attrib +r \"%1\" & attrib +r \"%1\\*.*\" /s" [HKEY_CLASSES_ROOT\Directory\shell\Attributes\shell\016flyout] "MUIVerb"="Clear Read-Only attribute for this folder and subfiles" [HKEY_CLASSES_ROOT\Directory\shell\Attributes\shell\016flyout\command] @="cmd /c attrib -r \"%1\" & attrib -r \"%1\\*.*\" /s" Можно ли его сделать c помощью SubMenu Windows 7-10 ? (я смог тока добавить cmd.exe ... Но не смог добавить дополнительные ключи запуска) Если создание подобных меню не предусматривается SubMenu Windows 7-10, то есть ли возможность добавить такой функционал в программу ? Всех причастных С наступающим Рождеством
|
AZJIO
- Стаж: 6 лет 8 месяцев
- Сообщений: 1322
- Репутация:127[+] [-]
|
я смог тока добавить cmd.exe Когда второй раз кидаешь cmd.exe выдаётся сообщение с предложением изменить имя, вводишь суффикс 1 (потом 2, 3 и т.д.) и создаются сколько угодно команд одной и той же программы. А потом ручками дописываешь ключи в ком строке. Потом эту пачку добавляешь к папке или диску и т.д. Разница в том что команды прописываются для всех файлов, а если прописывать для конкретных расширений то размер реестра будет не экономно использоваться, так как в моём случае в субменю прописываются ссылки на команды, а в представленном с командами атрибутов такой способ в каждое расширение будет прописывать одни и те же команды. То есть или записать "u.cmd1;u.cmd2;u.cmd3;u.cmd4" или 4 полноценной ком-строки и путь с иконкой. Если это разово, то нормально, а если это в разные объекты, то уже не экономично. Для виндовых прог и для постоянных классов проще рег-файл делать, так как на каком бы компьютере не пришлось его запускать он надёжно пропишет и всё будет работать, не будет проблем с путями. И у меня сейчас есть несколько планов, а мне тут компы начинают таскать, даже себе не могу сделать.планымне тут вариант с SendInput_ подсунули, хочу TextCorrection переделать на PureBasic Лаунчер не довёл до ума на PureBasic ContMenuFiles хочу переписать на PureBasic
|
Страница 9 из 12
Текущее время: 21-Ноя 19:59
Часовой пояс: UTC + 3
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете прикреплять файлы к сообщениям Вы можете скачивать файлы
|
|