rekshd
- Стаж: 5 лет 11 месяцев
- Сообщений: 331
- Репутация:7[+] [-]
|
А вот с =музыка и =видео усё прошло успешно Причём я добавлял в ини файл несколько дополнительных расширений уже после регистрации меню с помощью =музыка для оригинального списка расширений в ini И так же всё прошло успешно ! Добавлено через 6 минут 2 секунды: AZJIO, вот вся моя ветка реестра по ini файлуWindows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.ini] [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.ini\OpenWithList] "a"="NOTEPAD.EXE" "MRUList"="bca" "b"="AkelPad.exe" "c"="DllHost.exe" [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.ini\OpenWithProgids] "inifile"=hex(0): А вот оттуда же ветка по txtWindows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.txt\OpenWithList] "a"="NOTEPAD.EXE" "MRUList"="cba" "b"="browser.exe" "c"="AkelPad.exe" [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.txt\OpenWithProgids] "txtfile"=hex(0): [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.txt\UserChoice] "Progid"="txtfile" Как видишь в отличии от ini у txt есть UserChoice
Последний раз редактировалось: rekshd (2021-12-02 21:31), всего редактировалось 1 раз
|
AZJIO
- Стаж: 6 лет 8 месяцев
- Сообщений: 1322
- Репутация:127[+] [-]
|
rekshd, скачай опять, исправил Теперь AkelPad туда вообще не попадёт, а поиск в OpenWithProgids теперь правильный. Блин я сам ошибся в том что у меня Win10 и мне ProgId выдаётся родным методом, я закомментировал эту строку чтобы у меня ProgId начал вычисляться алгоритмом и я нашёл все ошибки.
|
rekshd
- Стаж: 5 лет 11 месяцев
- Сообщений: 331
- Репутация:7[+] [-]
|
Отлично. Для ini заработало! И запрос ProgID.exe показывает правильный ProgId
|
AZJIO
- Стаж: 6 лет 8 месяцев
- Сообщений: 1322
- Репутация:127[+] [-]
|
rekshd, Про рабочий стол и экспорт я не забыл, но ещё идейка - кнопка "сменить иконку меню", а то насоздавал без иконки, потом передумал и не искать же заново, хоть и можно через экспорт это провернуть.
|
rekshd
- Стаж: 5 лет 11 месяцев
- Сообщений: 331
- Репутация:7[+] [-]
|
Сейчас лично я пользуюсь кмдшкой для закидывания ico файла в System32... А вот с кнопкой будет гораздо удобнее Тем более если кнопка будет с открывающимся окном выбора пользовательской иконки и SubMenu Windows 7-10 будет автоматически адаптировать выбранную иконку под свои требования (определённое имя файла иконки, его местоположение и размер) PS А что Вы думаете про разделители в создаваемом программой контекстном меню. С ними ведь меню будет гораздо удобней. Особенно если программ будет много. Группировка с помощью таких разделителей будет явно к месту. И реализовать их просто - там ведь фиксированный код. Фактически добавляется одна строка и усё.
|
AZJIO
- Стаж: 6 лет 8 месяцев
- Сообщений: 1322
- Репутация:127[+] [-]
|
Обновил Добавлены пункты: "Сменить иконку меню", "Сменить имя меню", "Открыть меню в реестре", "Инфо о меню в реестре" Все пакетные пункты где игнорировался "Рабочий стол", теперь учитывают.Чтобы "Действия" были в разделителях?90254С ними ведь меню будет гораздо удобней У меня несколько прог и каждая добавила разделитель и выглядит это как куча разделителей, каждый разделитель не отличает одну прогу от другой, нет никакой группировки. Проверил, если добавить в реестр параметры SeparatorBefore и SeparatorAfter, то появляются соответствующие разделитель над и под пунктом "Действие" Кстати "Рабочий стол" это по факту пустое пространство любой папки и эти пункты появляются там. Возможно надо было добавить к этим пунктам %V в качестве параметров ком-строки или спрашивать нужен ли параметр вообще и надо просто прогу запустить. А то получается для сканера нужен %V, а для диспетчера задач, просмотрщика драйверов и т.д. не нужен.
Последний раз редактировалось: AZJIO (2021-12-04 19:52), всего редактировалось 2 раз(а)
|
rekshd
- Стаж: 5 лет 11 месяцев
- Сообщений: 331
- Репутация:7[+] [-]
|
Смотреть буду чуток позже, пока работаю. Но есть сразу предложение и вопрос. Давно хотел спросить, есть ли разница в том как писать в ини - до и после равно - с пробелами или без ? Или никакой разницы нет ? А предложение - кнопки сменить имя меню и сменить иконку меню лучше будут смотреться на основном интерфейсе программы, а не по ПКМ в столбике программ Кстати, а что ночью с сайтом было. не мог зайти ниоткуда. Ни из России, ни с Дикого Западп
|
Отправлено: 04-Дек-2021 21:25
(спустя 1 час 36 минут)
AZJIO
- Стаж: 6 лет 8 месяцев
- Сообщений: 1322
- Репутация:127[+] [-]
|
rekshd, перекачай с яндекса, добавил флажки-чекбоксы (2 шт), чтобы добавлять линию-разделитель до и/или после пункта.90261как писать в ини - до и после равно - с пробелами или без ? ну читает, же значит работает. А там не угадаешь, универсально я не могу ответить на этот вопрос, так как я не знаю какой обработчик использует какая либо программа, они могут быть собственными и со своими правилами. В движке PureBasic есть флаг который отвечает за пробел, добавлять ли его при записи или нет, но в этой программе запись в ini-файл не происходит, а значит только чтение. Если значение не подразумевает пробел вокруг себя, то можно в любом формате, а если данные могут содержать пробел на краях, то лучше использовать "без пробела", тогда данные читаются как есть, сколько пробелов до или после значения все они будут считаны целиком. Из справки:PB_Preference_NoSpace: Не будет пробелов между "ключом", знаком "=" и "значением". Это может быть полезно при работе с файлами внешних настроек Я этот ключ не использовал, так как у меня все значения не подразумевают пробел.90261лучше будут смотреться на основном интерфейсе программы Да кто их знает как лучше. Выбор в ПКМ начался всвязи с тем, что если список пуст, то нет смысла делать кнопки в интерфейсе программы, так как и меню не возможно создать без этого списка. А значит эти пункты должны применяться только к списку. Но так как меню можно вызвать при пустом списке или на белом фоне не выбирая пункт (это можно запретить и конечно выбор проверяется), то вроде как и нет смысла делать эти пункты обязательно в меню. И тот же "Последняя запись в реестре" тоже подразумевает наличие добавленного пункта меню, то есть он тоже не по правилам тут. С другой стороны если делать все в виде кнопок, то получится каша, тексты разной длины и лепить это красиво не получится, тем более для многоязычного варианта это и вовсе будет криво. Идеально я хотел сделать "Главное меню" и в приципе это не сложно, вместо Popup создать Main, а в его дескриптор впишутся эти же пункты, то есть одну запись поменять, но меня пока и так устраивает, кто знает что ещё добавиться и что потом опять перелепливать кнопки...
|
rekshd
- Стаж: 5 лет 11 месяцев
- Сообщений: 331
- Репутация:7[+] [-]
|
ну читает, же значит работает. А там не угадаешь, универсально я не могу ответить на этот вопрос, так как я не знаю какой обработчик использует какая либо программа, они могут быть собственными и со своими правилами. В движке PureBasic есть флаг который отвечает за пробел, добавлять ли его при записи или нет, но в этой программе запись в ini-файл не происходит, а значит только чтение. Если значение не подразумевает пробел вокруг себя, то можно в любом формате, а если данные могут содержать пробел на краях, то лучше использовать "без пробела", тогда данные читаются как есть, сколько пробелов до или после значения все они будут считаны целиком. То есть правильно писать в iniи нежелательно
|
AZJIO
- Стаж: 6 лет 8 месяцев
- Сообщений: 1322
- Репутация:127[+] [-]
|
для текущей программы в любом варианте, а вообще лучше без пробелов.
|
Отправлено: 04-Дек-2021 22:37
(спустя 1 час 4 минуты)
rekshd
- Стаж: 5 лет 11 месяцев
- Сообщений: 331
- Репутация:7[+] [-]
|
С другой стороны если делать все в виде кнопок, то получится каша, тексты разной длины и лепить это красиво не получится, тем более для многоязычного варианта это и вовсе будет криво. Идеально я хотел сделать "Главное меню" и в приципе это не сложно, вместо Popup создать Main, а в его дескриптор впишутся эти же пункты, то есть одну запись поменять, но меня пока и так устраивает, кто знает что ещё добавиться и что потом опять перелепливать кнопки.. Согласен с мыслью, А про эти нюансы, особенно про многоязычность, я не подумал .. Добавлено через 23 минуты 58 секунд: Иконка и название меню переназначаются Сделал свой пункт и иниСработало штатно
@@@@@@@@@@@@@ Есть мелкое предложение Вот скриншот
Если винда делает длинный пункт меню (как на фото - Сделать фоновым изображением рабочего стола), то название меню находится слева. А может красивее будет , если это создаваемое нами название меню будет отсортировано по центру, а не слева ? Если такое в винде вообще возможно ... Наверно, проше отключить этот фукционал с фоновым изображением в самой виндосе
@@@@@@@@@@@@@ Удаление всех меню пока не пашет. Розничное удаление прекрасно пашет Добавлено через 8 минут 49 секунд:
перекачай с яндекса, добавил флажки-чекбоксы (2 шт), чтобы добавлять линию-разделитель до и/или после пункта Не пашут пока ... Причём если галочку проставить, то она так и стоит железобетонно, даже если мышкой выбрать другой пункт в программах. Думаю, что наличие или отсутствие включенного чекбокса должно быть привязано к конкретному пункту списка программ.
|
AZJIO
- Стаж: 6 лет 8 месяцев
- Сообщений: 1322
- Репутация:127[+] [-]
|
90274Удаление всех меню пока не пашет А пункт информация о меню выдаёт число пунктов?флажки ставятся для пункта меню "Действия", почему они должны сниматься? Они не ставятся для программ в меню "Действия". Причём ставятся если меню "Действия" ещё не существует.
|
Отправлено: 05-Дек-2021 00:28
(спустя 1 час 9 минут)
rekshd
- Стаж: 5 лет 11 месяцев
- Сообщений: 331
- Репутация:7[+] [-]
|
А утилита то прославилась ! Случайно сейчас взглянул на Process Explorer - показывает, что она не понравилась Microsoft-скому дефендеру Пугает население шарика ужасником про русских хакеров This threat can perform a number of actions of a malicious hacker's choice on your PC Во как Добавлено через 32 минуты 45 секунд:
флажки ставятся для пункта меню "Действия", почему они должны сниматься? Они не ставятся для программ в меню "Действия". Причём ставятся если меню "Действия" ещё не существует. Вкурил Я то думал они создают разделители в самом контекстном меню, группирую ярлычки. Тогда думаю нужно: 1. Если есть такая возможность сделать эти пункты прямым действием - есть галочка - есть разделитель, нет галочки - разделитель сразу пропадает 2. Где-то явно указать, что это разделители для самого названия меню, а не для его пунктов. Может вообще проще сделать - убрать это в ini и сделать там эти два параметра со значениями 0 и 1 Кому нужно выставит в ини так как ему надо По поводу ини 3. Будет лучше если под пунктами в инишке сразу будут комментарии. Чтоб не путаться. Как это, например, сделано в ini программы JPEGView. Кстати, шикарная гляделка графики - уже лет семь на ней сижу и менять ни на что не собираюсь. Программа влезает на дискету 1.44 !!! Да, заметил следующее: Если для программы меню зарегистрировать на тип jpg и, затем, зарегистрировать их же на =фото (фото=jpg,bmp,tiff - это я уже сам добавил в ини), то меню прекрасно появляется и работает. Но вот если затем "удалить пункты из меню" для этого списка программ для тока jpg или для тока =фото то стирается вся запись SubCommands в профильной ветке (у меня это JPEGView) В результате и пункты меню для картинок пропадают. А Может вообще разделить применение для отдельных видов файлов и для шаблонов. То есть либо пользователь регистрирует отдельные расширения поштучно (это сделать по умолчанию), либо регистрирует по шаблону (для тех, кто понимает в ини, ведь шаблоны усё равно правится в ини). Чтоб не было путаницы и усложнения программы. тогда будет достаточно одно параметра в ини ... Добавлено через 2 минуты 26 секунд: Запись про рабстол стала прекрасно экспортироваться Добавлено через 10 минут 49 секунд: Исчо заметил про регистрацию пунктов меню для "Типы файлов" следующее Сейчас если я регистрирую пункты меню для расширения, например, jpg , то ... Оно по факту регистрируется для всех графических расширений !!! Удобно конечно, но не совсем логично В моём случае меню появляется для png,tiff,bmp и т.д. Потому что регистрация меню происходит на ту программу, которая у меня ассоциирована с jpg. В моём случае - JPEGView - Вот скрин регистрацииИ, поскольку по факту меню создано не для типа файла jpg, а для ассоциированной с этим типом файлов программы - для JPEGView, то оно появляется для всех ассоциированных с программой файлов. В том числе и самых экзотических. В принципе - удобно
|
AZJIO
- Стаж: 6 лет 8 месяцев
- Сообщений: 1322
- Репутация:127[+] [-]
|
90280А Может вообще разделить применение для отдельных видов файлов и для шаблонов. 1. Так это от пользователя зависит, только он выбирает что добавлять. 2. Не важно как введено, шаблоном или расширением, но данные в реестре не знают о том как они были введены, это никак нигде не фиксируется. А если это так, то с чего бы менялось поведение удаления? Если нужен конфиг, чтобы был выбор, то вот, из моей проги ContMenuFiles.текст=txt,log,ion,cfg,conf,inc,lst,shl,sif,ini,php,css,inf музыка=mp3,wav,wma,ogg,m3u,pls,ac3 видео=avi,mpg,mpeg,mp4,asx,asf,wmv,3gp,mov,mkv,ifo,vob,flv,bik,swf рисунки=bmp,gif,jpg,png,tga,tif,psd,xpm,dds ресурсы=dll,ocx,res,cpl,ax,exe,scr,apl скрипт=au3,bat,cmd,reg,vbs,js образ=iso,mdf,img,mds,md0,md1,md2,md3,md4,ima веб=htm,html,mht,url,chm,xml,hta,hhc,hhk,hhp докум=doc,docx,rtf,xls,xlsx,pps,ppt,pdf архив=rar,zip,7z,cab,gz,ace,arj,bzip2,bz,bz2,cpio,deb,dmg,gzip,hfs,jar,lha,lzh,lzma,rpm,split,swm,tar,taz,tbz,tbz2,tgz,tpz,uu,uue,xxe,z,wim,xar миди=kar,mid,rmi,mmf другие=bin,nfo,diz,gho,ghs,torrent,fb2,djvu,md5,s0m,bak исходник=c,cpp,h,inc,rc,py,asm,dev,pb 90280Оно по факту регистрируется для всех графических расширений ! Это понятно, если я все текстовые файлы привязываю к txtfile в котором указываю прогу Notepad++, то по факту мне достаточно прописать расширение только для txt, что пропишет меню в txtfile и оно будет у всех файлов. Тут кстати можно сделать оптимизацию, если ProgID повторяется, то пропустить шаг цикла, иначе ничего страшного 6 раз запишет одну и туже информацию в одно и тоже место. Но я разделяю классы (ProgID), так как у тебя для всех файлов будут одинаковые иконки, а как работать если ты визуал и у тебя все файлы на одно лицо?
|
Отправлено: 05-Дек-2021 02:05
(спустя 1 час 20 минут)
rekshd
- Стаж: 5 лет 11 месяцев
- Сообщений: 331
- Репутация:7[+] [-]
|
Алгоритм вкурил Согласен. Правильно. Да, сейчас у меня для папок, рабстола, дисков и для "всех файлов" меню удаляются через "Удалить все меню" (пишет и наличии этих меню при нажатии "Инфо о меню в реестре") А вот про меню для типов файлов - молчок. Хотя меню есть. Ветка реестра есть и открывается из "Открыть меню в реестре" и ввода jpg[HKEY_CLASSES_ROOT\Applications\JPEGView.exe\shell\open\command] @="\"D:\\Portable\\JPEGView\\JPEGView.exe\" \"%1\"" [HKEY_CLASSES_ROOT\Applications\JPEGView.exe\shell\OpenActions] "MUIVerb"="111111111111111111111111111111" "SubCommands"="u.AnyDesk;u.BreezeBrowserPro;u.DeskTopVp6;u.FSViewer;u.getsmile;u.JPEGView;u.Photomatix;u.Photoshop;u.SNS-HDR;u.Viber;u.VpLaunch;u.WhatsApp" "Icon"="E:\\!!\\SubMenu by AZJIO\\ico.ico" "SeparatorBefore"=dword:00000000 "SeparatorAfter"=dword:00000000 Но в экспорте про это не слова и "Инфо о меню в реестре" пустое И не удаляется из "Удалить все меню" по факту ... Тока розничное удаление через "Удалить меню"
@@@@@@@@@@@@@ Добавлено через 25 минут 33 секунды:
AZJIO Чтобы "Действия" были в разделителях? ... У меня несколько прог и каждая добавила разделитель и выглядит это как куча разделителей, каждый разделитель не отличает одну прогу от другой, нет никакой группировки. Проверил, если добавить в реестр параметры SeparatorBefore и SeparatorAfter, то появляются соответствующие разделитель над и под пунктом "Действие" Надо было мне внимательней вчитаться в то, что Вы пишете. Впрочем получилось для головного меню просто отлично. Для пункта, который называется "Действие". Обязательно оставьте эту фишку (тока желательно перенести эту настройку в ini ) Но, видать, у меня очень корявый язык. Поскоку наполовину прибалт Я то писал про разделители, которые между конкретными ярлыками программ в самом создаваемом меню, то есть идея была сгруппировать их, разделив черточкой. Да, там работают другие коды "CommandFlags"=dword:00000020 и "CommandFlags"=dword:00000040 ... как описано у Стеркина ... Могу уточнить синтаксис этих разделителей ... Пример я приводил на стр.3 этого топика
|
Страница 6 из 12
Текущее время: 22-Ноя 17:42
Часовой пояс: UTC + 3
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете прикреплять файлы к сообщениям Вы можете скачивать файлы
|
|