Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Windows 7 (http://forum.oszone.net/forumdisplay.php?f=95)
-   -   [решено] Не могу добавить элемент в контекстное меню для текстовых файлов (*.txt) в windows 7 (http://forum.oszone.net/showthread.php?t=284311)

kefirko 28-06-2014 23:52 2369677

Не могу добавить элемент в контекстное меню для текстовых файлов (*.txt) в windows 7
 
Вложений: 3
Хочу добавить в контекстное меню для файлов с расширением *.txt еще одну строку. Вся беда в том, что вроде бы действия элементарные и одинаковые вне зависимости от типа файла, но почему-то для *.xls мне все удалось сделать, а вот для *.txt не получается (см. три прикрепленных картинки).
Мне не нужно добавить элемент в контекстное меню для ВСЕХ типов, мне нужно ТОЛЬКО для *.txt!
*.xls проверял чисто для эксперимента.
Вот экспортировал из реестра ветки:
.txt
Код:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.txt]
@="txtfile"
"Content Type"="text/plain"
"PerceivedType"="text"

[HKEY_CLASSES_ROOT\.txt\OpenWithList]

[HKEY_CLASSES_ROOT\.txt\OpenWithList\ClPhpEd.exe]
@=""

[HKEY_CLASSES_ROOT\.txt\OpenWithList\dreamweaver.exe]
@=""

[HKEY_CLASSES_ROOT\.txt\OpenWithList\vsta.exe]
@=""

[HKEY_CLASSES_ROOT\.txt\OpenWithProgids]
"VSTA.txt.9.0"=""
"YandexTXT"=""

[HKEY_CLASSES_ROOT\.txt\PersistentHandler]
@="{5e941d80-bf96-11cd-b579-08002b30bfeb}"

[HKEY_CLASSES_ROOT\.txt\ShellNew]
"ItemName"=hex(2):40,00,25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,\
  6f,00,74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,\
  00,6e,00,6f,00,74,00,65,00,70,00,61,00,64,00,2e,00,65,00,78,00,65,00,2c,00,\
  2d,00,34,00,37,00,30,00,00,00
"NullFile"=""

txtfile
Код:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\txtfile]
@="Text Document"
"FriendlyTypeName"=hex(2):40,00,25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,\
  00,6f,00,6f,00,74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,\
  32,00,5c,00,6e,00,6f,00,74,00,65,00,70,00,61,00,64,00,2e,00,65,00,78,00,65,\
  00,2c,00,2d,00,34,00,36,00,39,00,00,00
"EditFlags"=dword:00010000

[HKEY_CLASSES_ROOT\txtfile\DefaultIcon]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,69,00,6d,00,\
  61,00,67,00,65,00,72,00,65,00,73,00,2e,00,64,00,6c,00,6c,00,2c,00,2d,00,31,\
  00,30,00,32,00,00,00

[HKEY_CLASSES_ROOT\txtfile\shell]

[HKEY_CLASSES_ROOT\txtfile\shell\Edit with Adobe Dreamweaver CS6]

[HKEY_CLASSES_ROOT\txtfile\shell\Edit with Adobe Dreamweaver CS6\Command]
@="\"C:\\Program Files\\Adobe\\Adobe Dreamweaver CS6\\Dreamweaver.exe\",\"%1\""

[HKEY_CLASSES_ROOT\txtfile\shell\open]

[HKEY_CLASSES_ROOT\txtfile\shell\open\command]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,4e,00,4f,00,\
  54,00,45,00,50,00,41,00,44,00,2e,00,45,00,58,00,45,00,20,00,25,00,31,00,00,\
  00

[HKEY_CLASSES_ROOT\txtfile\shell\Open with macros]
@="Открыть с макросом"

[HKEY_CLASSES_ROOT\txtfile\shell\Open with macros\command]
@="cscript script.vbs \"%1\""


[HKEY_CLASSES_ROOT\txtfile\shell\print]

[HKEY_CLASSES_ROOT\txtfile\shell\print\command]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,4e,00,4f,00,\
  54,00,45,00,50,00,41,00,44,00,2e,00,45,00,58,00,45,00,20,00,2f,00,70,00,20,\
  00,25,00,31,00,00,00

[HKEY_CLASSES_ROOT\txtfile\shell\printto]

[HKEY_CLASSES_ROOT\txtfile\shell\printto\command]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,6e,00,6f,00,\
  74,00,65,00,70,00,61,00,64,00,2e,00,65,00,78,00,65,00,20,00,2f,00,70,00,74,\
  00,20,00,22,00,25,00,31,00,22,00,20,00,22,00,25,00,32,00,22,00,20,00,22,00,\
  25,00,33,00,22,00,20,00,22,00,25,00,34,00,22,00,00,00

.xls
Код:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.xls]
"Content Type"="application/vnd.ms-excel"
@="Excel.Sheet.8"

[HKEY_CLASSES_ROOT\.xls\Excel.Sheet.8]
@=""

[HKEY_CLASSES_ROOT\.xls\Excel.Sheet.8\ShellNew]
"FileName"="excel9.xls"

[HKEY_CLASSES_ROOT\.xls\PersistentHandler]
@="{98de59a0-d175-11cd-a7bd-00006b827d94}"

Excel.Sheet.8
Код:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Excel.Sheet.8]
@="Лист Microsoft Excel"
"EditFlags"=hex:00,00,00,00

[HKEY_CLASSES_ROOT\Excel.Sheet.8\CLSID]
@="{00020820-0000-0000-C000-000000000046}"

[HKEY_CLASSES_ROOT\Excel.Sheet.8\DefaultIcon]
@="C:\\Windows\\Installer\\{90110419-6000-11D3-8CFE-0150048383C9}\\xlicons.exe,1"

[HKEY_CLASSES_ROOT\Excel.Sheet.8\DocObject]
@="16"

[HKEY_CLASSES_ROOT\Excel.Sheet.8\HTML Handler]
@="\"C:\\Program Files\\Microsoft Office\\OFFICE11\\msohtmed.exe\" %1"

[HKEY_CLASSES_ROOT\Excel.Sheet.8\HTML Handler\Icon]
".htm"=".xlshtml"
@=".xlshtml"
".mhtml"=".xlsmhtml"
".html"=".xlshtml"
".mht"=".xlsmhtml"

[HKEY_CLASSES_ROOT\Excel.Sheet.8\HTML Handler\shell]

[HKEY_CLASSES_ROOT\Excel.Sheet.8\HTML Handler\shell\edit]

[HKEY_CLASSES_ROOT\Excel.Sheet.8\HTML Handler\shell\edit\command]
@="\"C:\\Program Files\\Microsoft Office\\OFFICE11\\msohtmed.exe\" /o1 %1"

[HKEY_CLASSES_ROOT\Excel.Sheet.8\Insertable]
@=""

[HKEY_CLASSES_ROOT\Excel.Sheet.8\protocol]
@=""

[HKEY_CLASSES_ROOT\Excel.Sheet.8\protocol\StdFileEditing]
@=""

[HKEY_CLASSES_ROOT\Excel.Sheet.8\protocol\StdFileEditing\RequestDataFormats]
@="NoteshNote,NotesDocAction"

[HKEY_CLASSES_ROOT\Excel.Sheet.8\protocol\StdFileEditing\server]
@="C:\\PROGRA~1\\MICROS~2\\OFFICE11\\EXCEL.EXE"

[HKEY_CLASSES_ROOT\Excel.Sheet.8\protocol\StdFileEditing\SetDataFormats]
@="NotesDocInfo"

[HKEY_CLASSES_ROOT\Excel.Sheet.8\protocol\StdFileEditing\Verb]
@=""

[HKEY_CLASSES_ROOT\Excel.Sheet.8\protocol\StdFileEditing\Verb\0]
@="&Изменить"

[HKEY_CLASSES_ROOT\Excel.Sheet.8\protocol\StdFileEditing\Verb\1]
@="&Открыть"

[HKEY_CLASSES_ROOT\Excel.Sheet.8\shell]
@="Open"

[HKEY_CLASSES_ROOT\Excel.Sheet.8\shell\New]
@="Созд&ать"

[HKEY_CLASSES_ROOT\Excel.Sheet.8\shell\New\command]
@="\"C:\\Program Files\\Microsoft Office\\OFFICE11\\EXCEL.EXE\" /e /n"
"command"=hex(7):38,00,5d,00,67,00,41,00,56,00,6e,00,2d,00,7d,00,66,00,28,00,\
  5a,00,58,00,66,00,65,00,41,00,52,00,36,00,2e,00,6a,00,69,00,45,00,58,00,43,\
  00,45,00,4c,00,46,00,69,00,6c,00,65,00,73,00,3e,00,21,00,44,00,65,00,40,00,\
  5d,00,56,00,7a,00,28,00,72,00,3d,00,66,00,60,00,31,00,6c,00,66,00,71,00,60,\
  00,3f,00,52,00,26,00,20,00,2f,00,65,00,20,00,2f,00,6e,00,00,00,00,00

[HKEY_CLASSES_ROOT\Excel.Sheet.8\shell\New\ddeexec]
@="[new(\"%1\")]"

[HKEY_CLASSES_ROOT\Excel.Sheet.8\shell\New\ddeexec\application]
@="Excel"

[HKEY_CLASSES_ROOT\Excel.Sheet.8\shell\New\ddeexec\topic]
@="system"

[HKEY_CLASSES_ROOT\Excel.Sheet.8\shell\Open]
@="&Открыть"

[HKEY_CLASSES_ROOT\Excel.Sheet.8\shell\Open\command]
@="\"C:\\Program Files\\Microsoft Office\\OFFICE11\\EXCEL.EXE\" /e"
"command"=hex(7):38,00,5d,00,67,00,41,00,56,00,6e,00,2d,00,7d,00,66,00,28,00,\
  5a,00,58,00,66,00,65,00,41,00,52,00,36,00,2e,00,6a,00,69,00,45,00,58,00,43,\
  00,45,00,4c,00,46,00,69,00,6c,00,65,00,73,00,3e,00,21,00,44,00,65,00,40,00,\
  5d,00,56,00,7a,00,28,00,72,00,3d,00,66,00,60,00,31,00,6c,00,66,00,71,00,60,\
  00,3f,00,52,00,26,00,20,00,2f,00,65,00,00,00,00,00

[HKEY_CLASSES_ROOT\Excel.Sheet.8\shell\Open\ddeexec]
@="[open(\"%1\")]"

[HKEY_CLASSES_ROOT\Excel.Sheet.8\shell\Open\ddeexec\application]
@="Excel"

[HKEY_CLASSES_ROOT\Excel.Sheet.8\shell\Open\ddeexec\topic]
@="system"

[HKEY_CLASSES_ROOT\Excel.Sheet.8\shell\Open with macros]
@="Открыть с макросом"

[HKEY_CLASSES_ROOT\Excel.Sheet.8\shell\Open with macros\command]
@="cscript script.vbs \"%1\""


[HKEY_CLASSES_ROOT\Excel.Sheet.8\shell\OpenAsReadOnly]
@="Только для чтения"
"Extended"=""

[HKEY_CLASSES_ROOT\Excel.Sheet.8\shell\OpenAsReadOnly\command]
@="\"C:\\Program Files\\Microsoft Office\\OFFICE11\\EXCEL.EXE\" /h /e"
"command"=hex(7):38,00,5d,00,67,00,41,00,56,00,6e,00,2d,00,7d,00,66,00,28,00,\
  5a,00,58,00,66,00,65,00,41,00,52,00,36,00,2e,00,6a,00,69,00,45,00,58,00,43,\
  00,45,00,4c,00,46,00,69,00,6c,00,65,00,73,00,3e,00,21,00,44,00,65,00,40,00,\
  5d,00,56,00,7a,00,28,00,72,00,3d,00,66,00,60,00,31,00,6c,00,66,00,71,00,60,\
  00,3f,00,52,00,26,00,20,00,2f,00,68,00,20,00,2f,00,65,00,00,00,00,00

[HKEY_CLASSES_ROOT\Excel.Sheet.8\shell\OpenAsReadOnly\ddeexec]
@="[open(\"%1\",,,,,,,,,,,,,,1,,1)]"

[HKEY_CLASSES_ROOT\Excel.Sheet.8\shell\OpenAsReadOnly\ddeexec\application]
@="Excel"

[HKEY_CLASSES_ROOT\Excel.Sheet.8\shell\OpenAsReadOnly\ddeexec\topic]
@="system"

[HKEY_CLASSES_ROOT\Excel.Sheet.8\shell\Print]
@="&Печать"

[HKEY_CLASSES_ROOT\Excel.Sheet.8\shell\Print\command]
@="\"C:\\Program Files\\Microsoft Office\\OFFICE11\\EXCEL.EXE\" /e"
"command"=hex(7):38,00,5d,00,67,00,41,00,56,00,6e,00,2d,00,7d,00,66,00,28,00,\
  5a,00,58,00,66,00,65,00,41,00,52,00,36,00,2e,00,6a,00,69,00,45,00,58,00,43,\
  00,45,00,4c,00,46,00,69,00,6c,00,65,00,73,00,3e,00,21,00,44,00,65,00,40,00,\
  5d,00,56,00,7a,00,28,00,72,00,3d,00,66,00,60,00,31,00,6c,00,66,00,71,00,60,\
  00,3f,00,52,00,26,00,20,00,2f,00,65,00,00,00,00,00

[HKEY_CLASSES_ROOT\Excel.Sheet.8\shell\Print\ddeexec]
@="[open(\"%1\")][print()][close()]"

[HKEY_CLASSES_ROOT\Excel.Sheet.8\shell\Print\ddeexec\application]
@="Excel"

[HKEY_CLASSES_ROOT\Excel.Sheet.8\shell\Print\ddeexec\ifexec]
@="[open(\"%1\")][print()][quit()]"

[HKEY_CLASSES_ROOT\Excel.Sheet.8\shell\Print\ddeexec\topic]
@="system"

[HKEY_CLASSES_ROOT\Excel.Sheet.8\shell\Printto]

[HKEY_CLASSES_ROOT\Excel.Sheet.8\shell\Printto\command]
@="\"C:\\Program Files\\Microsoft Office\\OFFICE11\\EXCEL.EXE\" /e"
"command"=hex(7):38,00,5d,00,67,00,41,00,56,00,6e,00,2d,00,7d,00,66,00,28,00,\
  5a,00,58,00,66,00,65,00,41,00,52,00,36,00,2e,00,6a,00,69,00,45,00,58,00,43,\
  00,45,00,4c,00,46,00,69,00,6c,00,65,00,73,00,3e,00,21,00,44,00,65,00,40,00,\
  5d,00,56,00,7a,00,28,00,72,00,3d,00,66,00,60,00,31,00,6c,00,66,00,71,00,60,\
  00,3f,00,52,00,26,00,20,00,2f,00,65,00,00,00,00,00

[HKEY_CLASSES_ROOT\Excel.Sheet.8\shell\Printto\ddeexec]
@="[open(\"%1\")][print(1,,,,,,,,,,,2,\"%2\")][close()]"

[HKEY_CLASSES_ROOT\Excel.Sheet.8\shell\Printto\ddeexec\application]
@="Excel"

[HKEY_CLASSES_ROOT\Excel.Sheet.8\shell\Printto\ddeexec\ifexec]
@="[open(\"%1\")][print(1,,,,,,,,,,,2,\"%2\")][quit()]"

[HKEY_CLASSES_ROOT\Excel.Sheet.8\shell\Printto\ddeexec\topic]
@="system"

[HKEY_CLASSES_ROOT\Excel.Sheet.8\shell\Save As]
@="&Сохранить как..."

[HKEY_CLASSES_ROOT\Excel.Sheet.8\shell\Save As\command]
@="C:\\PROGRA~1\\MICROS~2\\Office12\\Moc.exe -f \"%1\""

[HKEY_CLASSES_ROOT\Excel.Sheet.8\XML Handler]

[HKEY_CLASSES_ROOT\Excel.Sheet.8\XML Handler\Icon]
".xml"=".xlxml"
@=".xlxml"

Что не так с веткой txt?

Iska 29-06-2014 02:53 2369706

Цитата:

Цитата kefirko
Код:

@="cscript script.vbs \"%1\""
»

Попробуйте так:
Код:

@="cscript.exe \"Путь\script.vbs\" \"%1\""
Не забудьте экранировать разделители пути «\» тем же символом «\». Например:
Код:

@="cscript.exe \"c:\\Мои проекты\\script.vbs\" \"%1\""

kefirko 29-06-2014 06:47 2369711

Iska, тут все ровно так как и должно быть. Повторюсь: для *.xls мне все удалось сделать, т.е. все работает, но не для *.txt.
Но все равно проверил ваше предположение. Ничего не поменялось.

Petya V4sechkin 29-06-2014 07:59 2369714

Цитата:

Цитата kefirko
[HKEY_CLASSES_ROOT\txtfile\shell\Open with macros]
@="Открыть с макросом"

[HKEY_CLASSES_ROOT\txtfile\shell\Open with macros\command]
@="cscript script.vbs \"%1\""

Запустите Regedit и посмотрите, есть ли там эти записи.

Iska 29-06-2014 09:02 2369720

Цитата:

Цитата kefirko
Iska, тут все ровно так как и должно быть. »

Нет. Не должно. Без указания пути к скрипту — последний будет искаться в текущем каталоге. Например:
Цитата:

Код:

Ошибка ввода: Не удается найти файл сценария "E:\Песочница\0381\script.vbs".

Цитата:

Цитата kefirko
Но все равно проверил ваше предположение. Ничего не поменялось. »

Что наблюдаете?
Цитата:

Цитата Petya V4sechkin
Запустите Regedit и посмотрите, есть ли там эти записи. »


kefirko 29-06-2014 09:08 2369723

Цитата:

Цитата Petya V4sechkin
Запустите Regedit и посмотрите, есть ли там эти записи. »

Я их оттуда экспортировал. Конечно есть.

Цитата:

Цитата Iska
Без указания пути к скрипту — последний будет искаться в текущем каталоге. »

Я знаю. Мне так и надо.

Цитата:

Цитата Iska
Что наблюдаете? »

Наблюдаем отсутствие изменений.

Petya V4sechkin 29-06-2014 09:12 2369726

kefirko, еще здесь проверьте:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.txt

kefirko 29-06-2014 09:42 2369734

Цитата:

Цитата Petya V4sechkin
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.txt »

К сожалению тоже никаких изменений.
Сделал по той же логике. Создал раздел shell и в него все записал. Не получилось. Потом попробовал без shell. Все равно ноль эмоций.
Вот экспортированная ветка:
Код:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.txt]

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.txt\OpenAndUseMacro]
@="Открыть и запустить макрос"

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.txt\OpenAndUseMacro\command]
@="cscript \"D:\\konstructor\\!distribs\\excel vbs скрипты\\OpenAndUseMacro.vbs\" \"%1\""


[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.txt\OpenWithList]
"a"="NOTEPAD.EXE"
"MRUList"="dbcae"
"b"="EXCEL.EXE"
"c"="RASKROY.EXE"
"d"="Bazis70.exe"
"e"="Notepad++Portable.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\shell]

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.txt\shell\OpenAndUseMacro]
@="Открыть и запустить макрос"

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.txt\shell\OpenAndUseMacro\command]
@="cscript \"D:\\konstructor\\!distribs\\excel vbs скрипты\\OpenAndUseMacro.vbs\" \"%1\""


[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.txt\UserChoice]
"Progid"="Applications\\EXCEL.EXE"


Petya V4sechkin 29-06-2014 09:49 2369735

Цитата:

Цитата kefirko
Сделал по той же логике

Ничего там не надо было создавать.

Удалите ветку
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.txt

kefirko 29-06-2014 09:54 2369738

Цитата:

Цитата Petya V4sechkin
Удалите ветку
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.txt »

Удалил. Ничего.

kefirko 29-06-2014 18:04 2369900

Вложений: 1
Накатал скриптик на 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


Илья_Рудоманенко@vk 29-06-2014 19:27 2369942

kefirko, Вот.

kefirko 29-06-2014 20:28 2369986

Илья_Рудоманенко@vk, дома и на работе все работает. Можете эту ветку реестра выложить?

Проверил на работе (Windows 7 Ultimate). Скрипт работает. Для xls меню появляется, для txt - нет.
Проверил дома на своем компе (Windows 7 Ultimate). Скрипт работает. Для xls меню появляется, для txt - нет.
Проверил у жены на ноуте (Windows Vista Home Basic). Скрипт работает. Для xls меню появляется, для txt - тоже появляется.

Илья_Рудоманенко@vk 29-06-2014 20:40 2369994

kefirko, Хм..
Во второй раз ошибка не появилась.
У меня Windows 7 Home Basic. Скрипт работает без ошибок. Для xls меню появляется, для txt - появляется.

kefirko 29-06-2014 21:28 2370027

Илья_Рудоманенко@vk, тогда тем более от вас бы вашу веточку реестра получить.

Илья_Рудоманенко@vk 29-06-2014 21:37 2370041

kefirko, Держите.

kefirko 29-06-2014 21:40 2370045

Илья_Рудоманенко@vk, нет.
Вот эту: HKEY_CLASSES_ROOT\txtfile.

Илья_Рудоманенко@vk 29-06-2014 21:44 2370048

kefirko, Извиняюсь,вот.

kefirko 29-06-2014 22:02 2370060

Илья_Рудоманенко@vk, у меня с вами все символы до одного совпадают, у жены также, плюс дополнительная ветка:
[HKEY_CLASSES_ROOT\txtfile\ShellEx\{8895b1c6-b41f-4c1c-a562-0d564250836f}]
@="{1531d583-8375-4d3f-b5fb-d23bbd169f22}"

Но сдается мне, что копать надо не тут.

Илья_Рудоманенко@vk, если не трудно еще бы вот эту ветку получить: HKEY_CLASSES_ROOT\.txt.

Илья_Рудоманенко@vk 29-06-2014 22:06 2370062

kefirko, Вот.

kefirko 29-06-2014 22:19 2370067

Илья_Рудоманенко@vk, тоже все идентично.

Petya V4sechkin 30-06-2014 07:43 2370152

kefirko, кстати, на скриншоте отсутствует и стандартный пункт "Печать" (что странно).

Попробуйте с помощью ShellExView отключить сторонние (не Microsoft) элементы (правой кнопкой мыши -> Disable Selected Items) и перезагрузиться.
Если не поможет, включите обратно.

kefirko 30-06-2014 08:13 2370156

Вложений: 2
Petya V4sechkin, ничего не произошло. Даже стандартный пункт "Печать" не появился.
См. две прикрепленных картинки. На зачеркнутый пункт меню внимания не обращайте, это рабочий вариант. Пользуюсь пока им, предварительно пересохранив txt в excel табличку (у меня прога генерирует табличные данные в txt формате, которые потом нужно обработать, поэтому работает и так и так, но пока приходится пересохранять). Да, это полная шляпа :(

Илья_Рудоманенко@vk 30-06-2014 08:30 2370160

kefirko, А во " включении и отключении компонентов Виндовс " всё включено, что имеет отношение к печати ?!

Petya V4sechkin 30-06-2014 08:40 2370167

kefirko, сделайте лог Process Monitor следующим образом:
  1. запустите Process Monitor;
  2. на "Рабочем столе" (в Проводнике) щелкните правой кнопкой мыши на TXT-файле, чтобы отобразилось меню;
  3. сохраните лог в Process Monitor: меню File -> Save -> PML-формат;
  4. заархивируйте и выложите на любой файлообменник, например http://rghost.ru

kefirko 30-06-2014 20:45 2370453

Уезжаю в отпуск до 10-го числа. Так что отвечу вам по приезду. Главное не теряйтесь :)

kefirko 10-07-2014 22:04 2374903

Цитата:

Цитата Petya V4sechkin
сделайте лог Process Monitor

Готово. Чуть позже будет еще с парочки компов.
Скачать лог

Petya V4sechkin 10-07-2014 22:18 2374912

kefirko, вы уверены, что отключали сторонние Shell Extensions?

kefirko 10-07-2014 22:21 2374913

Цитата:

Цитата Petya V4sechkin
kefirko, вы уверены, что отключали сторонние Shell Extensions? »

Это был лог с включенными Shell Extensions.
Сейчас будем отключать.

kefirko 10-07-2014 22:49 2374921

Petya V4sechkin, отключил все, кроме тех, где в колонке "Company" написано "Microsoft Corporation". Перезагрузил. Вот результат: скачать лог.

kefirko 10-07-2014 22:55 2374925

Вложений: 1
Petya V4sechkin, кстати не все Shell Extensions удалось отключить. Последние четыре (см. колонку "Disabled") так и остались "No".

Илья_Рудоманенко@vk 10-07-2014 23:02 2374928

kefirko, 1. Отключите все сторонние Shell Extensions в ShellExView;
2. Запустите Process Monitor;
3.
Цитата:

Цитата Petya V4sechkin
на "Рабочем столе" (в Проводнике) щелкните правой кнопкой мыши на TXT-файле, чтобы отобразилось меню; »

4. Сохраните лог Process Monitor: меню File -> Save -> CSV-формат;
5.
Цитата:

Цитата Petya V4sechkin
заархивируйте и выложите на любой файлообменник, например http://rghost.ru »


kefirko 11-07-2014 07:06 2375031

Илья_Рудоманенко@vk, скачать лог.
Это лог с компа на работе.

Petya V4sechkin 11-07-2014 10:47 2375088

Цитата:

Цитата Petya V4sechkin
еще здесь проверьте:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.txt

Цитата:

Цитата kefirko
Удалил. Ничего.

Вот смотрим в логе:
Цитата:

Explorer.EXE 1844 RegQueryValue HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.txt\UserChoice\Progid SUCCESS Type: REG_SZ, Length: 52, Data: Applications\emeditor.exe
и во втором:
Цитата:

"Explorer.EXE","1456","RegQueryValue","HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileE xts\.txt\UserChoice\Progid","SUCCESS","Type: REG_SZ, Length: 46, Data: Applications\EXCEL.EXE"
Естественно, ассоциации не с txtfile.

kefirko 11-07-2014 17:46 2375291

Petya V4sechkin, объясните на пальцах пожалуйста, какие я должен сделать их этого выводы, а то слабо понимаю.

Цитата:

Цитата Petya V4sechkin
Цитата Petya V4sechkin:
еще здесь проверьте:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.txt »

После отключения сторонних Shell Extensions и удаления этой ветки, все заработало. Спасибо.
Если и дома заработает, помечу тему решенной.

kefirko 12-07-2014 13:54 2375615

Оказывается вид контекстного меню зависит еще и от того с каким приложением по умолчанию ассоциирован данный тип файла (для меня это новость). При ассоциации *.txt с Блокнотом все работает как надо и при неотключенных сторонних Shell Extensions.

kefirko 17-07-2014 09:19 2377447

Petya V4sechkin, тогда такой вопрос: "Как добавить еще одну строку в контекстное меню для файлов с расширением *.txt по умолчанию ассоциированных не с Блокнотом, а с Microsoft Excel?"
Принципиально надо именно так.

Petya V4sechkin 17-07-2014 09:28 2377451

kefirko, на выбор:
HKEY_CLASSES_ROOT\Applications\EXCEL.EXE\shell

или
HKEY_CLASSES_ROOT\SystemFileAssociations\text\shell

Смысл у этих вариантов разный (сами подумайте).


Время: 02:41.

Время: 02:41.
© OSzone.net 2001-