rekshd
- Стаж: 5 лет 4 месяца
- Сообщений: 331
- Репутация:7[+] [-]
|
погуглил, читаю статью Стёркина AZJIO, А можете дать ссылку на эту статью, а то у Стёркина много чего написано ...
|
AZJIO
- Стаж: 6 лет 2 месяца
- Сообщений: 1286
- Репутация:127[+] [-]
|
|
Отправлено: 01-Дек-2021 15:05
(спустя 1 час 53 минуты)
rekshd
- Стаж: 5 лет 4 месяца
- Сообщений: 331
- Репутация:7[+] [-]
|
Да, эту статью последний раз читал как раз год и месяц назад, когда делал себе вручную менюшки Мануал на все времена. Кстати, оттуда я и взял информацию про CommandFlags, которые создают разделители в меню. Впрочем, ответа, почему для "типов файлов" у меня в семёрках меню не создаётся, я так и не нашел. Ну и ляд с ним. Я усё равно этим пунктом пользоваться не буду. Поскоку всегда делаю меню для "всех файлов" Мне так удобнее. А этот функционал работает прекрасно Подумываю кнопку "Удалить все меню" - полезно для эксперимента и может для дела, чтобы переделать заново. А когда добавите Эту кнопку зачистки всех изменений, которые сделала программа ? Будет ли выбор в программах по Ctrl+A ? Планируйте ли ввести разделители и управляемую сортировку программ в SubMenu Windows 7-10 и, соответственно, создаваемом при помощи SubMenu Windows 7-10 контекстном меню ? Добавлено через 14 минут 5 секунд: Да, есть исчо предложение - маленькое усовершенствование Сейчас кнопки программы открывают реестр регедитом. Что не всегда удобно. Слишком уж регедит прост ... Обычному пользователю конечно хватит и регэдита. Да обычный пользователь туды и не полезет - в реестр. А вот продвинутому или профи явно нужно будет подцепить какой-нибудь редактор реестра посерьёзней... Можно ли в ini прописать адрес редактора реестра, который будет использоваться программой вместо штатного регедита ? Пользователь при необходимости сам внесёт туда адрес того редактора реестра, которым ему привычно пользоваться. Я, например, пользуюсь сейчас либо Registry WorkShop либо RegistryFinder. Ну а если этот адрес в ini пуст, то тогда использовать штатный регедит... Думаю, такая фишка будет полезна и для программы и для тех, кто её будет использовать.
|
Отправлено: 01-Дек-2021 19:09
(спустя 1 час 44 минуты)
AZJIO
- Стаж: 6 лет 2 месяца
- Сообщений: 1286
- Репутация:127[+] [-]
|
Нельзя исключать что проблема на стороне Windows. Надо найти рабочую инструкцию или признать что на Win7 не работает.Пришлось покурить мануалы по использованию их в командной строке и вообще по ихним командам запуска. кроме того я сделал кавычки внутри кода, то есть путь указывать без кавычек. Возможно это неправильно, вдруг понадобиться добавить ключ типа "/f путь", тогда в кавычках должен быть только путь, но не f и вот тут нет гибкости. Но зато защита, если юзер не думает о кавычках и просто указал путь, то не сделав кавычки внутри этот путь распался бы на множество параметров по пробелам. Перезалил на обе ссылки, обновив англоязычную версию.
|
rekshd
- Стаж: 5 лет 4 месяца
- Сообщений: 331
- Репутация:7[+] [-]
|
AZJIO,кроме того я сделал кавычки внутри кода, то есть путь указывать без кавычек. Возможно это неправильно, вдруг понадобиться добавить ключ типа "/f путь", тогда в кавычках должен быть только путь, но не f и вот тут нет гибкости. Но зато защита, если юзер не думает о кавычках и просто указал путь, то не сделав кавычки внутри этот путь распался бы на множество параметров по пробелам. Ну для меня ничего не изменилось поскольку оба моих редактора реестра изначально потребовали для корректной работы дополнительные ключи запуска. И оба редактора лежали по пути с пробелами, так что я сразу их пути закавычил. Конструкция у меня изначально получилась типа:RegProg="путь до проги с пробелами" /ключ запуска Поэтому ничего менять не пришлось
@@@@@@@@@@@@@ Добавлено через 1 час 15 минут 13 секунд: Есть исчо предложение по маленькому косметическому улучшению В SubMenu видно только название добавленной программы. Можно ли при подведении к этому названию сделать всплывающее меню с адресом программы ? А то при большом количестве программ добавленных вручную (не из ини файла) начинаю путаться ... Впрочем эта идея на Ваше усмотрение
@@@@@@@@@@@@@ Добавлено через 1 час 33 минуты 42 секунды: Странно Регфайл выгруженный с десятки и натравленный на семёрку в результате дал в проводнике такое же меню, какое было в 10ке. Для типов файлов... И работает оно в семёрке также как в десятке. Так что сами по себе настройки меню однотипные в обеих операционках. А вот SubMenu импортированные регфайлом настройки в режиме "Типы файлов" видит и позволяет их изменять, но по факту ничего не меняет... Похоже усё таки что то не учтено в SubMenu Но поскоку я нуль в PureBasic, найти в исходном коде я ничего не смогу. Сначала надо PureBasic изучить ... А я это уже год собираюсь сделать
|
AZJIO
- Стаж: 6 лет 2 месяца
- Сообщений: 1286
- Репутация:127[+] [-]
|
Возможно ассоциации не срабатывают, ProgID не получен. Надо в LiveCD семерки попробовать исправить функцию. Подсказку в меню вряд ли, это же винда делает отображение меню. Если бы они сделали такой флаг в реестре, то я лишь могу обеспечить его включение. Смогу только вечером посмотреть.
|
rekshd
- Стаж: 5 лет 4 месяца
- Сообщений: 331
- Репутация:7[+] [-]
|
Принесли мне ноут с x86 win7. На нём ситуация повторяется - для типов файлов ничего не создаётся Обнаружил исчо пару моментов: 1. вне зависимости от настроек пункта MenuName=Действия программа всё равно для всех файлов, папок, дисков и рабстола меню создает с пунктом Действия Добавлено - обновил дрова и перегрузил ноут - создание пунктов начало работать штатно. То есть если меняю название пункта меню в ини, он в меню начинает создаваться с новым, уже моим именем. 2. Пункт удалить все меню не срабатывает, пишет удалено 0 и это соответствует реальности - в реестре усё остается на месте. А вот пункт удалить меню (то есть в розницу) срабатывает прекрасно и меню удаляет. После перезапуска ноута Пункт удалить все меню так и не работает ... Так что этот момент стоит проверить
|
AZJIO
- Стаж: 6 лет 2 месяца
- Сообщений: 1286
- Репутация:127[+] [-]
|
90217Пункт удалить все меню не срабатывает, Так как я не могу определить в какие места прописаны, то я запрашиваю данные SubCommands и если они существуют, то удаляю. Проблема, если меню пустое, то такое меню не будет видно для алгоритма, а в одиночном удалении так как конкретно запрашивается тип, то удаление происходит без проверки наличия, а только проверка, что удалено успешно. Итак, проблема: пустое меню. В допустимых функциях по работе с реестром нет функции проверки существования параметра, наверно напишу свою.
|
rekshd
- Стаж: 5 лет 4 месяца
- Сообщений: 331
- Репутация:7[+] [-]
|
AZJIO,в одиночном удалении так как конкретно запрашивается тип под типом Вы понимаете "все файлы", диск, папка, рабстол ? ДА, удаление всех меню пытался использовать тока тогда, когда имел какое-либо наполнение. Оно никогда не было пустым. Пример из регфайла"SubCommands"="u.FileSizesList_x64;u.ProcExp x64 en ;u.ProcExp x64;u.PotPlayerMini64" Добавлено через 6 минут 6 секунд: Вопрос - под удалением всех меню Вы понимаете удаление ВСЕХ меню, что созданы в разных местах (рабстол, папки, диски и т.д.) сразу и одновременно ? Добавлено через 7 минут 59 секунд: А может поступить проще - при создании меню где нибудь это фиксировать в логе. А затем, считав этот протокол, удалить тока созданное программой ?
|
Отправлено: 02-Дек-2021 20:14
(спустя 1 час 12 минут)
dimo70
- Стаж: 6 лет 5 месяцев
- Сообщений: 3996
- Репутация:26[+] [-]
- Откуда: BG
|
AZJIO, приветствую. Я пока пользую программу ECMenu. Хорошо придумана и сделана, но есть один большой недостаток - невозможно автоматически приложить выбор. Надо открыть программу, выбрать и потом кнопкой приложить. Я даже писал на офсайт, но ничего не ответили. Вот хотел спросить возможно ли сделать такое автоматическое приложение заранее выбраного набора программ в SubMenu Windows 7-10?
_________________ Подпись отключена за нарушение правил форума
|
rekshd
- Стаж: 5 лет 4 месяца
- Сообщений: 331
- Репутация:7[+] [-]
|
Ну можно исчо проще: Не искать содержимое "SubCommands"="u. а сразу удалять из четырёх мест (папки, все файлы, диски, рабстол) куст реестра, содержащий "SubCommands" (Возможно добавив проверку на присутствие в этих ветках чего-то с ="u.) Например: подлежат удалению HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell\OpenActions HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\OpenActions HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Drive\shell\OpenActions Остаётся открытым вопрос с типами файлов. но там можно взять конечное количество расширений (которые представлены в ини) и провести с ними удаление аналогично ... Получится чисто механическое действие, не требующее сложных вычислений и поиска параметров ... Кстати, обнаружил тока что, что куст для рабочего стола HKEY_CLASSES_ROOT\Directory\Background\shell\OpenActions в Экспорт по кнопке не попадает ... хотя добавляется и удаляется в розницу отлично Проверьте пожалуйста
Последний раз редактировалось: rekshd (2021-12-02 20:25), всего редактировалось 1 раз
|
loban_ser
- Стаж: 6 лет 2 месяца
- Сообщений: 578
- Репутация:24[+] [-]
|
AZJIO, можно реализовать как например в PsMgr конфиге BackFile=%ProgramData%\PsMgr.bck какие значения вносились в реестр
|
Страница 5 из 12
Текущее время: 04-Май 17:54
Часовой пояс: UTC + 3
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете прикреплять файлы к сообщениям Вы можете скачивать файлы
|
|