5

Ответ на этот вопрос в SO (Как мне открыть окно cmd в определенном месте?) Я ищу эффективный способ добавить ярлык Open Command Prompt Here в контекстное меню. Различные решения предлагают добавлять записи в HKCR\Folder, а другие предлагают добавлять записи в HKCR\Directory.

Исходя из этого вопроса (Directory Vs. Folder) создается впечатление, что папка может быть виртуальной или нет, тогда как каталог всегда "реальный". Диаграмма ven будет иметь папку, представляющую собой большой круг, а каталог - меньший круг, полностью заключенный в круг папки.

Ради командной строки, правильно ли предположить, что я, вероятно, буду иметь дело только с "настоящими" папками или каталогами?

Тогда возникают следующие вопросы: Могу ли я открыть окно командной строки в виртуальном каталоге и какие у меня есть для этого причины? Будет ли добавление пункта контекстного меню ТОЛЬКО в HKCR\ Папка охватывать все мои базы, а затем и некоторые? Неужели при добавлении пункта контекстного меню ТОЛЬКО в каталог HKCR\ Directory будут пропущены некоторые вещи?

И наконец, что касается брауни: что если я хотел бы иметь возможность добавить запись для открытия командной строки, щелкнув внутри папки, а не на значке папки, какой пункт контекстного меню мне нужно использовать, чтобы получить эту функцию?

2 ответа2

3

Лучший способ сделать это - добавить командную строку Open ко всем объектам. Командная строка open передает рабочий каталог (cmd /k pushd% d "), и вы получаете командную строку в рабочем каталоге объекта, по которому вы щелкнули правой кнопкой мыши.

По большей части вы МОЖЕТЕ открыть командную строку в виртуальной папке. Это зависит, хотя. Например, папки DFS возвращают командную строку в UNC. Но попытка получить командную строку для объекта в папке поиска просто дает вам реальное местоположение объекта.

Редактировать:

Чтобы получить командную строку при щелчке правой кнопкой мыши на фоне, необходимо написать расширение оболочки. И поскольку Microsoft настаивает на том, чтобы расширения оболочки были написаны на нативном коде!меня :( Смотрите MSDN в меню расширения оболочки.

http://msdn.microsoft.com/en-us/library/cc144067(v=vs.85).aspx

Или вы можете просто скачать эту программу: Context Console Shell Extension.

http://code.kliu.org/cmdopen/

1

На ваш бонусный вопрос: нет ключа реестра, который вы можете изменить, который позволит вам делать то, что вы хотите. Установите ContextConsole, чтобы получить эту функциональность. В этом случае требуется расширение оболочки, поскольку при нажатии на фон папки у вас не выделяется ни один объект.

Если у вас есть другие вопросы: вы можете записать компакт-диск в виртуальную папку в командной строке, если она поддерживается реальной папкой в файловой системе (например, Fonts или Start Menu). Чисто виртуальные папки (например, Control Panel) не имеют пути к файловой системе, поэтому нет пути к CD.

PowerShell поддерживает расширения пространства имен и позволяет выполнять такие действия, как указание местоположения в пути к реестру:

PS C:\> Set-Location HKLM:\Software\Classes\Directory
PS HKLM:\Software\Classes\Directory> Get-ChildItem


    Hive: HKEY_LOCAL_MACHINE\Software\Classes\Directory


SKC  VC Name                           Property
---  -- ----                           --------
  2   0 Background                     {}
  0   1 DefaultIcon                    {(default)}
  2   1 shell                          {(default)}
  4   0 shellex                        {}

Если вы хотите добавить ключи reg в HKCR\Directory , добавьте их также в HKCR\Drive если вам нужно, чтобы они также отображались в корневой папке диска.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .