Я использую адресную строку Explorer, чтобы напрямую открыть папку в VS Code.
Сначала я открываю cmd, набирая cmd
в адресной строке каталога, который хочу открыть в Visual Studio Code. Я пытался найти прямой путь.
Я пробовал использовать cmd /c code .
и cmd /c "code ."
. Это открывает мою папку в VS Code, но проблема в том, что cmd не закрывается.
Использование cmd.exe
вообще не обязательно. Его можно запустить напрямую %LOCALAPPDATA%\Programs\Microsoft VS Code\bin\code.exe
с текущим путем к каталогу в качестве аргумента, поскольку его можно прочитать на странице интерфейса командной строки кода Visual Studio.
Используемый метод приводит к explorer.exe
вызову функции библиотеки ядра Windows CreateProcess для запуска cmd.exe
с тремя аргументами /c
и code
и .
.
В справке по запуску cmd /?
в окне командной строки объясняется, что параметр /c
дает команду командному процессору Windows проанализировать и запустить командную строку, как указано далее, с оставшимися аргументами, а затем закрыться.
code
— имя исполняемого файла для запуска без пути и расширения.
В данном случае .
ссылается на текущий рабочий каталог cmd.exe
. См. документацию Microsoft о Именовании файлов, путей и пространств имен, где также объясняется .
как относительный путь для ссылки на текущий каталог.
По этой причине командный процессор Windows вызывает CreateProcess
для выполнения code.exe
после того, как обнаружил его с помощью переменных среды PATH
и PATHEXT
, как описано в этом ответе подробно с .
в качестве аргумента для code.exe
и ждет с самозакрытием, пока не запустится code.exe
закрывается. Здесь такое ожидание нежелательно. Решение состоит в том, чтобы вообще не использовать совершенно ненужный cmd.exe
только для того, чтобы сделать то, что explorer.exe
уже можно сделать: вызвать CreateProcess
для запуска code.exe
с путем к каталогу в качестве аргумента.
ПРИМЕЧАНИЕ. В приведенном ниже описании предполагается установка Visual Studio Code в каталог %LOCALAPPDATA%\Programs\Microsoft VS Code
, который является каталогом установки по умолчанию. Замените этот путь к каталогу путем к каталогу установки Visual Studio Code, если установка выполнялась в другой каталог.
Одним из решений является использование ярлыка файла в папке/контекстном меню Send to
для запуска кода Visual Studio с указанием пути к каталогу или имени файла, который можно настроить следующим образом.
Запустите проводник Windows и перейдите в каталог %LOCALAPPDATA%\Programs\Microsoft VS Code\bin
. Это также можно сделать, выбрав этот путь к каталогу здесь, в веб-браузере, скопировав его с помощью Ctrl+C в буфер обмена, щелкните адресную строку проводника Windows, вставьте путь с помощью Ctrl+V и нажмите клавишу RETURN или ENTER, чтобы открыть этот каталог. .
Нажмите дополнительную (обычно правую) кнопку указывающего устройства (мыши) на файле code.exe
, чтобы открыть контекстное меню для исполняемого файла Visual Studio Code.
Нажмите основной (обычно левой) кнопкой манипулятора на элемент «Показать дополнительные параметры в Windows 11» и нажмите «Далее» в любой Windows в подменю «Отправить» в пункте контекстного меню «Рабочий стол» (создать ярлык). Затем сверните окно проводника Windows, чтобы увидеть рабочий стол с новым файлом ярлыка с именем code.exe
или code.exe - Shortcut
в зависимости от версии Windows. Также можно нажать комбинацию клавиш Win+D (нажать клавишу с логотипом Windows и удерживать клавишу плюс D) для отображения рабочего стола. Win+D повторное нажатие восстанавливает окна приложения. См. также страницу документации Microsoft Сочетания клавиш в Windows.
Нажмите кнопку вторичного указывающего устройства на вновь созданном файле ярлыка и (после нажатия «Показать дополнительные параметры в Windows 11») щелкните пункт контекстного меню «Переименовать», чтобы изменить имя файла ярлыка на что-то значимое, например «Открыть в VS Code». Имя файла ярлыка позже будет именем пункта контекстного меню в контекстном подменю Отправить.
Нажать кнопку вторичного манипулятора на вновь созданном и уже переименованном файле ярлыка и нажать на пункт контекстного меню Свойства, чтобы открыть диалоговое окно Свойства ярлыка.
Свойство Target передается с параметром функции lpCommandLine
в CreateProcess
пользователем explorer.exe
позже с помощью ярлыка. Его можно изменить, добавив такие параметры, как --new-window
(с предшествующим пробелом). Важно знать, что explorer.exe
при дальнейшем использовании ярлыка добавляет к командной строке пробел и полное имя каталога/файла каталога/файла, выбранного в настоящее время в проводнике Windows, как определено свойством Target.
Путь к каталогу, указанный свойством Start in, передается с параметром функции lpCurrentDirectory
в CreateProcess
и определяет текущий рабочий каталог для запущенного исполняемого файла code.exe
. В этом случае лучше всего указать в свойствах ярлыка «Начало» без пути. Тогда текущий рабочий каталог explorer.exe
будет также текущим рабочим каталогом Visual Studio Code. Но в качестве начала можно также использовать каталог программных файлов Visual Studio Code.
Свойство «Комментарий» должно быть настроено с полезной подсказкой, например «Открыть каталог или файл в Visual Studio Code».
Можно выбрать красивый значок, отображаемый позже в контекстном подменю «Отправить», и, конечно же, все остальные свойства также можно настроить. Все они определяют, как explorer.exe
вызывает CreateProcess
при использовании ярлыка. Наконец, нажмите кнопку ОК, чтобы сохранить все измененные свойства и закрыть окно.
Вырежьте измененный файл ярлыка с помощью Ctrl+X с рабочего стола, восстановите окно проводника Windows, перейдите в каталог %APPDATA%\Microsoft\Windows\SendTo
и вставьте с помощью Ctrl+V файл ярлыка.
Теперь в проводнике Windows (или любом другом файловом менеджере с поддержкой контекстного меню проводника) можно открыть контекстное меню каталога или файла с помощью кнопки вторичного указательного устройства и (после нажатия кнопки «Показать дополнительные параметры в Windows 11») щелкнуть в подменю «Отправить». в пункт контекстного меню с именем файла ярлыка, например «Открыть в VS Code». Затем explorer.exe
(или любой другой исполняемый файл файлового менеджера) запускает Visual Studio Code с полным именем (диск + путь + имя + расширение) каталога/файла, выбранного в данный момент в файловом менеджере, добавленного в качестве дополнительного аргумента.
Пункт контекстного меню «Отправить в» Открыть в VS Code можно удалить после удаления Visual Studio Code, удалив ярлык с этим именем файла в каталоге %APPDATA%\Microsoft\Windows\SendTo
.
Другим решением является регистрация пункта контекстного меню «Открыть в VS Code» для каталогов в реестре Windows, чтобы непосредственно в контекстном меню каталога/папки был пункт контекстного меню «Открыть в VS Code». Это можно сделать из окна командной строки , выполнив следующие команды:
reg.exe ADD "HKCU\Software\Classes\Directory\shell\Open in VS Code" /v Icon /d "%LOCALAPPDATA%\Programs\Microsoft VS Code\bin\code.exe,0" /f
reg.exe ADD "HKCU\Software\Classes\Directory\shell\Open in VS Code" /v MultiSelectModel /d Single /f
reg.exe ADD "HKCU\Software\Classes\Directory\shell\Open in VS Code\command" /ve /d ^"\"%LOCALAPPDATA%\Programs\Microsoft VS Code\bin\code.exe\" \"%1\"^" /f
Дополнительную информацию см. на странице документации Microsoft Создание обработчиков контекстного меню. Запустите в окне командной строки reg.exe QUERY HKCR\Directory /s
, чтобы получить вывод всех существующих зарегистрированных действий оболочки и обработчиков контекстного меню, эффективных для текущего пользователя.
Если щелкнуть сейчас в проводнике Windows или любом другом файловом менеджере с поддержкой зарегистрированных расширений оболочки Windows и обработчиков контекстного меню в каталоге с кнопкой вторичного указывающего устройства, откроется контекстное меню для выбранного каталога, содержащее (после нажатия кнопки «Показать дополнительные параметры» в Windows 11). ) пункт контекстного меню Открыть в VS Code.
Первый значок в ресурсах значков code.exe
Visual Studio Code используется здесь в качестве значка для отображения в контекстном меню. Также можно зарегистрировать другой значок из ресурсов значков code.exe
, изменив число после запятой или любого другого файла, содержащего ресурс значка.
Значение строки реестра с именем MultiSelectModel
и значением Single
гарантирует, что опция контекстного меню «Открыть в VS Code» будет отображаться только в том случае, если в файловом менеджере выбран один каталог. Этот параметр контекстного меню не отображается, если в файловом менеджере выбрано несколько каталогов, поскольку невозможно запустить Visual Studio Code с несколькими аргументами каталога. Это преимущество этого решения по сравнению с решением «Отправить по ярлыку», поскольку выполнение кода Visual Studio по ошибке с несколькими выбранными каталогами теперь невозможно.
%1
заменяется полным именем выбранного каталога.
Также могут быть параметры VS Code, такие как --new-window
, вставленные в командную строку слева от \"%1\"
при регистрации command
для открытия в VS Code.
После удаления Visual Studio Code можно выполнить следующую команду в окне командной строки, чтобы удалить из реестра пункт контекстного меню «Открыть в VS Code»:
reg.exe DELETE "HKCU\Software\Classes\Directory\shell\Open in VS Code"
Оболочка Windows — это приложение, которое показывает пользователю после входа в систему рабочий стол Windows, кнопку/меню «Пуск» Windows и панель задач Windows с системным треем. В реестре Windows под ключом HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
хранится строковое значение реестра с именем Shell
со строковым значением explorer.exe
по умолчанию. Первый запускается explorer.exe
после того, как пользователь вошел в систему, и по этой причине по умолчанию работает как оболочка Windows. Также можно использовать другой исполняемый файл в качестве оболочки Windows. Но этот исполняемый файл должен поддерживать все, что поддерживается explorer.exe
для работы в качестве оболочки Windows.
Я также хочу добавить информацию о разнице между Directory
и Folder
в HKEY_CLASSES_ROOT , который представляет собой объединенное представление 64-битных и 32-битных HKEY_CURRENT_USER\Software\Classes
и HKEY_LOCAL_MACHINE\Software\Classes
. Дополнительную информацию см. также на странице документации Microsoft Ключи реестра, на которые влияет WOW64.
В окне командной строки reg.exe QUERY HKCR\Folder /s
можно выполнить команду, чтобы получить информацию о регистрации Folder
как действующей для текущего пользователя.
Directory
предназначен только для реальных каталогов файловой системы.
Folder
включает в себя реальные каталоги в файловой системе, а также виртуальные папки, такие как Home
или Gallery
и другие, отображаемые в проводнике Windows. Home
не является настоящим каталогом в файловой системе. Это виртуальная папка с идентификатором {F874310E-B6B7-47DC-BC84-B9E6B38F5903}
.
Регистрация Open в VS Code под ключом Folder
вместо Directory
приведет к тому, что этот пункт контекстного меню будет отображаться также в контекстном меню Home
с выполнением кода Visual Studio с "::{F874310E-B6B7-47DC-BC84-B9E6B38F5903}"
в качестве аргумента при нажатии на пункт контекстного меню. Это, конечно, было бы бесполезно, поскольку Visual Studio Code не знает, что делать с этой строкой аргумента. Это причина добавления Open in VS Code к Directory
, а не к Folder
.