ru1956,
Maza Faka Класс
Directory всё же не совсем правильное место для засовывания туда в
shell раздела
CmdHere, ИМО. Этот класс предназначен более для украшательства (Background, DefaultIcon), поиска (там один-единственный раздел
find в
shell, и всё), и даже значение
shell по умолчанию есть
none.. Ну и для
shellext'ов системных, от Microsoft. Всё остальное, стороннее, лучше засовывать в
общий класс
Folder, так оно правильнее будет. Там, кстати, и находятся шеллы на открытие Проводника (
explore), и на открытие самой папки (
open) в Проводнике, это немного разные вещи, получается
Так что лучше (
CmdWindowHere.reg):
Цитата: REGEDIT4
[HKEY_CLASSES_ROOT\Folder\shell\CmdWindowHere]
; Мы русские или где?.. ('&' - для горячей клавиши)
@="Ко&мандная строка"
[HKEY_CLASSES_ROOT\Folder\shell\CmdWindowHere\command]
@="%SystemRoot%\\system32\\cmd.exe /k pushd \"%1\"
Кодировка -- Windows-1251 (русская), естественно.
Если использовать юникодный формат "Windows Registry Editor Version 5.00" вместо старого доброго REGEDIT4, то и сохранять reg-файл желательно в юникоде. Плюс лучше тогда использовать для строк не ANSI-формат
REG_SZ, а
REG_EXPAND_SZ (это --
hex(02), расширяемый строковый параметр), даже для значений по умолчанию. Штатный REGEDIT этого не умеет, к сожалению..((
Тогда вот что получится (тот же reg-файл, но в юникоде, с комментариями-пояснениями):
Цитата: Windows Registry Editor Version 5.00
; Открыть командную строку в этой папке (CmdWindowHere.reg).
;Ко&мандная строка -- ('&' - для горячей клавиши)
[HKEY_CLASSES_ROOT\Folder\shell\CmdWindowHere]
@=hex(2):1a,04,3e,04,26,00,3c,04,30,04,3d,04,34,04,3d,04,30,04,4f,04,20,00,\
41,04,42,04,40,04,3e,04,3a,04,30,04,00,00
;%SystemRoot%\system32\cmd.exe /k pushd "%1"
[HKEY_CLASSES_ROOT\Folder\shell\CmdWindowHere\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,63,00,6d,\
00,64,00,2e,00,65,00,78,00,65,00,20,00,2f,00,6b,00,20,00,70,00,75,00,73,00,\
68,00,64,00,20,00,22,00,25,00,31,00,22,00,00,00
Кавычки для условного параметра %1 (имя папки) действительно лучше оставить, а вот вместо прямой команды
cd перехода в папку лучше всё-таки использовать команду
pushd. Ну и надо избавиться от жёсткой привязки (
C:\Windows\...) местонахождения
cmd.exe, так будет универсальнее.
Кстати, так как любой диск в принципе является папкой, как и любые другие СИСТЕМНЫЕ папки (такие, как
Мои документы,
Мой компьютер, кнопка
ПУСК, даже
Корзина, хе-хе..), то пункт контекстного меню "
Командная строка" появится и у них..)) Правда, текущей папкой будет кое-где вроде бы становиться не то, но.. вроде бы и то