Накатал скриптик на VBS, который смотрит, что у вас написано в реестре по адресу
HKEY_CLASSES_ROOT\.txt\ и
HKEY_CLASSES_ROOT\.xls\ в ключе
(По умолчанию). И добавляет соответственно значению этого ключа ветку
HKEY_CLASSES_ROOT\txtfile\shell\NewMenuForTest\ (скорее всего) и
HKEY_CLASSES_ROOT\Excel.Sheet.8\shell\NewMenuForTest\ (скорее всего). И записывает там в ключ
(По умолчанию) значение "
NewMenuForTest". После записи у вас по клику правой кнопкой на файлах с расширением *.xls и *.txt в контекстном меню должна появиться еще одна строка "
NewMenuForTest". Потом скрипт удаляет добавленные ветки. Все делается с подтверждением действий.
Проверьте кто-н у себя, появится ли у вас еще одна строка в контекстном меню для обоих типов файлов и напишите результат. Вдруг у вас все нормально.
В скриптике этот код:
Код:

Option Explicit
'Объявляем переменные
Dim WshShell, Root, Res, _
tWay, tKey, tValue, _
xWay, xKey, xValue
Root = "HKEY_CLASSES_ROOT" 'Корень
'Создаем объект WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
'Считываем значение по-умолчанию для ветки HKEY_CLASSES_ROOT\.txt\
tWay = "\.txt\" 'Имя ветки
tKey = "" 'Имя ключа
tValue = WshShell.RegRead(Root & tWay & tKey)
'Запрос на создание нового ключа и запись в него значения
Res = WshShell.Popup("Создать ключ" & vbCrLf & Root & "\" & tValue & "\shell\NewMenuForTest\" & "(По умолчанию)" & "?",0,_
"Работа с реестром",vbQuestion+vbYesNo)
If Res=vbYes Then 'Нажата кнопка Да
'Записываем новый ключ
WshShell.RegWrite Root & "\" & tValue & "\shell\NewMenuForTest\" & "", "NewMenuForTest"
End If
'Считываем значение по-умолчанию для ветки HKEY_CLASSES_ROOT\.xls\
xWay="\.xls\" 'Имя ветки
tKey="" 'Имя ключа
xValue=WshShell.RegRead(Root & xWay & xKey)
'Запрос на создание нового ключа и запись в него значения
Res=WshShell.Popup("Создать ключ" & vbCrLf & Root & "\" & xValue & "\shell\NewMenuForTest\" & "(По умолчанию)" & "?",0,_
"Работа с реестром",vbQuestion+vbYesNo)
If Res=vbYes Then 'Нажата кнопка Да
'Записываем новый ключ
WshShell.RegWrite Root & "\" & xValue & "\shell\NewMenuForTest\" & "", "NewMenuForTest"
End If
'Запрос на удаление всех внесенных изменений
Res = WshShell.Popup("Удалить раздел" & vbCrLf & Root & "\" & tValue & "\shell\NewMenuForTest\" & "?",0,"Работа с реестром",vbQuestion+vbYesNo)
If Res=vbYes Then 'Нажата кнопка Да
'Удаляем раздел
WshShell.RegDelete Root & "\" & tValue & "\shell\NewMenuForTest\"
End If
'Запрос на удаление всех внесенных изменений
Res=WshShell.Popup("Удалить раздел" & vbCrLf & Root & "\" & xValue & "\shell\NewMenuForTest\" &_
"?",0,"Работа с реестром",vbQuestion+vbYesNo)
If Res=vbYes Then 'Нажата кнопка Да
'Удаляем раздел
WshShell.RegDelete Root & "\" & xValue & "\shell\NewMenuForTest\"
End If