[CMD] Обойти баг cmd и regedit

ИИИ так!

Что я в итоге получаю.
Оказывается Вадим Стеркин у которого весь тырнет видимо подглядывает,ну по крайней мере поблуждав по ссылкам я таки приходил на его сайт,не учел или не хотел учитывать один важный момент.

К чему я.
Есть разделы реестра,которые можно разбавлять новым функционалом имея на руках только лишь глаголы.
Один из таких разделов является
Код:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore

Так как судя по всему ребята из Майкрософт когда пишут компоненты для системы друг с другом не общаются и не стараются вникнуть в то что изобретают.

Допустим мне необходимо автоматизировать создание и настройку контексного меню,каскадного.

Тут все однозначно и несложно:
CMD/BATCH:
echo n|reg add "HKEY_CLASSES_ROOT\DesktopBackground\Shell\helpmemu" /v MUIVerb /d Шаблоны && cls || (
echo.
  echo Необходимо запустить скрипт от имени Администратора!
   echo Для выхода нажмите клавишу Enter
    pause>nul
     exit /b )
      reg add "HKEY_CLASSES_ROOT\DesktopBackground\Shell\helpmemu" /v "SubCommands" /d "AddLog; /f
       reg add "HKEY_CLASSES_ROOT\DesktopBackground\Shell\helpmemu" /v "Icon" /d "imageres.dll,104" /f
        reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\Shell\AddLog"

И в таком варианте,конечно же меню срабатывает.
НО!

Когда мы хотим сделать тоже самое,только уже с многоярусным каскадным контексным меню,то тут бойцы Билии начинают наступательные операции друг на друга.

По регламенту раздела
Код:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\Shell\AddLog

Должен иметь название меню в виде значения параметра MUIVerb.
Но по тому же регламенту,для того что бы оболочка читала название раздела ему необходимо либо задать значение параметра по умолчанию,либо установить пустое значение.

Да,в ручную это производится великолепно.
Но если параметр по умолчанию будет иметь значение,то MUIVerb теряет приоритет и этот блок вложенного меню превратится в строчку вместо дополнительного блока меню.

Но при этом консоль не в состоянии записать параметр по умолчанию,а только лишь значение параметра по умолчанию!
Так как упорно думает что это конечная остановка а не еще один блок меню.

Ради эксперимента повторяем нечто похожее для других разделов контексного меню,например "Мой компьютер".
Тоже самое!

В общем происходит какой то непонятный баг когда консоль пытается произвести запись,но запись происходит некорректно,думаю почему так произошло ,как так получилось что для редактора реестра эта операция корректна а для reg.exe некорректна .
Однозначно разраб regedit.exe этот баг видел и понимал,а тот кто пилил reg.exe про это никогда не слышал.

А еще я думаю что разработчики не пропустили такие возможности прошивки,а создали их умышленно,но получается что с коллегами по цеху знаниями не поделились.

Проблема именно в CMD.exe ,так как если не создавать консолью reg файл а редактировать имеющийся,то тогда импорт проходит идеально.
p.s. тот кто не понял о чем вообще речь,читать хотя бы такую тему:
http://www.outsidethebox.ms/10891/
 
Последнее редактирование:
Здравствуйте, @Komoliddin !
Добро пожаловать на SafeZone!

@Komoliddin, открыть или импортировать?
Зачем одной командой?

P.S. с чего решили, что это бага? (лучше создать новую тему), не приветствуется поднятие очень старых тем.
 
Последнее редактирование:
Назад
Сверху Снизу