Вы, наверное, знакомы с командами shell, которые позволяют открывать различные системные и пользовательские расположения. Например, команда shell:Libraries в Windows 7 открывает библиотеки. Я предлагаю вам посмотреть, откуда они берутся и как их применять для ускорения работы.
Чем удобны команды
Поскольку тема явно не новая, я предлагаю вам взглянуть на ее практическое применение в этой и следующей статьях. С помощью команд shell вы можете:
- быстро переходить к папкам, вводя их в поиск меню «Пуск», диалоговое окно «Выполнить» (WIN+R), адресную строку проводника
- создавать ярлыки к часто используемым расположениям
- использовать в реестре в качестве путей для команд
Запуск элементов ActiveX
Сначала я расскажу о реже упоминаемом источнике команд, а заодно и менее распространенном (но иногда очень нужном) способе их запуска.
Раздел реестра
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID
содержит список апплетов ActiveX, которые можно определить по наличию подраздела ShellFolder, Видите словесную связь с командой shell? Название подраздела реестра (GUID) можно использовать в качестве кода запуска, поставив после команды shell три двоеточия. Например, команда:
shell:::{22877a6d-37a1-461a-91b0-dbda5aaebc99}
открывает папку Недавние места. Она отличается от папки Недавние документы тем, что в ней не отображаются недавно открытые файлы, а только список мест (папок, поисков, элементов панели управления), которые вы недавно открывали в проводнике и диалоговых окнах. К этой папке мы вернемся в следующей статье, в рамках рассказа о тонкой настройке окон «Открыть» и «Сохранить как».
Проводник Windows (explorer) понимает команды shell в качестве параметров командной строки, что можно использовать для команд в реестре. Так, в контекстные меню папки, рабочего стола и компьютера можно добавлять команды для открытия элементов панели управления, системных и пользовательских папок.
explorer shell:::{22877a6d-37a1-461a-91b0-dbda5aaebc99}
Получение списка элементов ActiveX
Получить список элементов проще всего с утилитой CLSID Dump. Она как раз и фильтрует нужный раздел реестра, извлекая сведения обо всех элементах ShellFolder и отображая список апплетов ActiveX.
С помощью утилиты очень удобно находить нужные элементы, поскольку она отображает как английское, так и русское название, а также позволяет отсортировать их по алфавиту. Элемент можно сразу запустить и посмотреть, и если он полезен, тут же создать ярлык, не прилагая усилий. Вы также можете скопировать GUID в буфер обмена, что пригодится при использовании команд в реестре. Наконец, можно экспортировать список в HTML.
Переход в известные папки
Более известный способ запуск команд основан на использовании кодовых слов, т.е. текстовых идентификаторов папок, которые понятны системе. Например, избранное проводника можно создать открыть так.
shell:Links
Владея английским, кодовые слова легче запомнить, конечно, но зачастую проще посмотреть их в справочнике ниже. Команды удобно использовать для:
- быстрого перехода в скрытую или системную папку, если их отображение отключено в проводнике
- объяснений, как добраться до какой-либо папки, что экономит время при оказании помощи (удобство, например, заключается в том, что нужная пользовательская папка открывается вне зависимости от имени учетной записи)
- создания ярлыков к часто используемым папкам
Так, для создания ярлыка, щелкните правой кнопкой мыши на рабочем столе и выберите Создать — Ярлык. Затем введите команду:
explorer shell:Links
Все кодовые слова для команд можно найти в разделе реестра
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\FolderDescriptions
Заглянув в его подразделы, можно подметить два момента:
- значение параметра Name является кодовым словом для запуска
- некоторые подразделы содержат параметр ParsingName, и его значение также можно использовать для запуска
Во втором случае мы как раз имеем дело с элементами ActiveX, а GUID в значении параметра указывает на подраздел в HKLM\SOFTWARE\Classes\CLSID, o котором шла речь выше. Теперь вы видите, почему при запуске команд путем вызова GUID используется дополнительная пара двоеточий.
Список известных папок для команд shell
Ниже приводится список этих команд для Windows Vista и Windows 7:
- выделенные красным команды работают только в Windows 7
- * перед путем означает, что папка является скрытой, т.е. не видна в проводнике, если отключено отображение скрытых файлов и папок (что, впрочем, не мешает переходить в нее командой)
Команда | Путь или открываемая папка |
---|---|
shell:AddNewProgramsFolder | Получение программ |
shell:Administrative Tools | * %UserProfile%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Administrative Tools |
shell:AppData | * %UserProfile%\AppData\Roaming |
shell:AppUpdatesFolder | Установленные обновления |
shell:Cache | * %UserProfile%\AppData\Local\Microsoft\Windows\Temporary Internet Files |
shell:CD Burning | * %UserProfile%\AppData\Local\Microsoft\Windows\Burn\Burn |
shell:ChangeRemoveProgramsFolder | Установка и удаление программ |
shell:Common Administrative Tools | * %ProgramData%\Microsoft\Windows\Start Menu\Programs\Administrative Tools |
shell:Common AppData | * %ProgramData% |
shell:Common Desktop | %public%\Desktop |
shell:Common Documents | %public%\Documents |
shell:CommonDownloads | %public%\Downloads |
shell:CommonMusic | %public%\Music |
shell:CommonPictures | %public%\Pictures |
shell:Common Programs | * %ProgramData%\Microsoft\Windows\Start Menu\Programs |
shell:CommonRingtones | * %ProgramData%\Microsoft\Windows\Ringtones |
shell:Common Start Menu | * %ProgramData%\Microsoft\Windows\Start Menu |
shell:Common Startup | * %ProgramData%\Microsoft\Windows\Start Menu\Programs\Startup |
shell:Common Templates | * %ProgramData%\Microsoft\Windows\Templates |
shell:CommonVideo | %public%\Videos |
shell:ConflictFolder | Центр синхронизации\Конфликты |
shell:ConnectionsFolder | Control Panel\All Control Panel Items\Network Connections |
shell:Contacts | %UserProfile%\Contacts |
shell:ControlPanelFolder | Панель управления\Все элементы панели управления |
shell:Cookies | * %UserProfile%\AppData\Roaming\Microsoft\Windows\Cookies |
shell:Cookies\Low | * %UserProfile%\AppData\Roaming\Microsoft\Windows\Cookies\Low |
shell:CredentialManager | * %UserProfile%\AppData\Roaming\Microsoft\Credentials |
shell:CryptoKeys | * %UserProfile%\AppData\Roaming\Microsoft\Crypto |
shell:default Gadgets | %ProgramFiles%\Windows Sidebar\Gadgets |
shell:desktop | Рабочий стол |
shell:device Metadata Store | * %ProgramData%\Microsoft\Windows\DeviceMetadataStore |
shell:documentsLibrary | Библиотеки\Документы |
shell:downloads | %UserProfile%\Downloads |
shell:dpapiKeys | * %UserProfile%\AppData\Roaming\Microsoft\Protect |
shell:Favorites | Избранное Internet Explorer (%UserProfile%\Favorites) |
shell:Fonts | Шрифты (%SystemRoot%\Fonts) |
shell:Gadgets | Гаджеты (* %UserProfile%\AppData\Local\Microsoft\Windows Sidebar\Gadgets) |
shell:Games | Игры |
shell:GameTasks | * %UserProfile%\AppData\Local\Microsoft\Windows\GameExplorer |
shell:History | Журнал IE (* %UserProfile%\AppData\Local\Microsoft\Windows\History) |
Shell:HomeGroupFolder | Домашняя группа |
shell:ImplicitAppShortcuts | * %UserProfile%\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\ImplicitAppShortcuts |
shell:InternetFolder | 32-bit Internet Explorer |
shell:Links | Избранное проводника (%UserProfile%\Links) |
shell:Libraries | Библиотеки |
shell:Local AppData | * %UserProfile%\AppData\Local |
shell:LocalAppDataLow | * %UserProfile%\AppData\LocalLow |
shell:MusicLibrary | Библиотеки\Музыка |
shell:My Music | %UserProfile%\Music |
shell:My Pictures | %UserProfile%\Pictures |
shell:My Video | %UserProfile%\Videos |
shell:MyComputerFolder | Компьютер |
shell:NetHood | * %UserProfile%\AppData\Roaming\Microsoft\Windows\Network Shortcuts |
shell:NetworkPlacesFolder | Сеть |
shell:Personal | %UserProfile%\Documents |
shell:PicturesLibrary | Библиотеки\Изображения |
shell:PrintersFolder | Принтеры |
shell:PrintHood | * %UserProfile%\AppData\Roaming\Microsoft\Windows\Printer Shortcuts |
shell:Profile | %UserProfile% |
shell:ProgramFiles | %ProgramFiles% |
shell:ProgramFilesCommon | %ProgramFiles%\Common Files |
shell:ProgramFilesCommonX64 | %ProgramFiles%\Common Files |
shell:ProgramFilesCommonX86 | %ProgramFiles(x86)%\Common Files |
shell:ProgramFilesX64 | %ProgramFiles% |
shell:ProgramFilesX86 | %ProgramFiles(x86)% |
shell:Programs | Программы в меню «Пуск» (* %UserProfile%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs) |
shell:Public | %public% |
shell:PublicGameTasks | * %ProgramData%\Microsoft\Windows\GameExplorer |
shell:PublicSuggestedLocations | %public%\Library\PublicSuggestedLocations |
shell:Quick Launch | * %UserProfile%\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch |
shell:Recent | Недавние документы (* %UserProfile%\AppData\Roaming\Microsoft\Windows\Recent) |
shell:RecycleBinFolder | Корзина |
shell:ResourceDir | %SystemRoot%\Resources |
shell:Ringtones | * %ProgramData%\Microsoft\Windows\Ringtones |
shell:SampleMusic | %public%\Music\Sample Music |
shell:SamplePictures | %public%\Pictures\Sample Pictures |
shell:SampleVideos | %public%\Videos\Sample Videos |
shell:SavedGames | Сохраненные игры (%UserProfile%\Saved Games) |
shell:Searches | Сохраненные поиски (%UserProfile%\Searches) |
shell:SearchHomeFolder | Поиск (WIN+F) |
shell:SendTo | Меню «Отправить» (* %UserProfile%\AppData\Roaming\Microsoft\Windows\SendTo) |
shell:Start Menu | Меню «Пуск» (* %UserProfile%\AppData\Roaming\Microsoft\Windows\Start Menu) |
shell:Startup | Автозагрузка (* %UserProfile%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup) |
shell:SyncCenterFolder | Центр синхронизации |
shell:SyncResultsFolder | Центр синхронизации\Результаты синхронизации |
shell:SyncSetupFolder | Центр синхронизации\Настройка синхронизации |
shell:System | %SystemRoot%\System32 |
shell:SystemCertificates | * %UserProfile%\AppData\Roaming\Microsoft\SystemCertificates |
shell:SystemX86 | %SystemRoot%\SysWOW64 |
shell:Templates | Шаблоны (* %UserProfile%\AppData\Roaming\Microsoft\Windows\Templates) |
shell:User Pinned | * %UserProfile%\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned |
shell:UsersFilesFolder | Профиль (%UserProfile%) |
shell:UsersLibrariesFolder | Библиотеки |
shell:VideosLibrary | Библиотеки\Видео |
shell:Windows | %SystemRoot% |
hb860
Надо в грид добавить ещё один столбец, с отображением Shell:::command
И, наконец, привести утилиту в божеский вид. Делов на 5 минут
Vadim Sterkin
hb860, кстати, спасибо еще раз за утилиту :)
А смысл? Все GUIDы ActiveX и так уже перечислены в утилите.
Интересно, что некоторые GUIDы известных расположений можно использовать в качестве параметра командной строки explorer.exe напрямую, без «прокладки» shell. Например, Компьютер открывает команда:
Аналогично можно открыть, например, корзину, а вот команда для IE:
Эти и еще несколько GUID’ов были «известны» еще проводнику Windows XP, но в Windows 7 часть расположений упразднена.
hb860
Вот смысл я вижу такой
Столбцы
My computer {GUID} shell::computer
—————
Shell:profile я открываю так
Пуск-Выполнить — . — Enter
Профиль пользователя — текущая папка проводника в Shell режиме
Vadim Sterkin
hb860, возможно, что не все папки из раздела FolderDescriptions имеют эквивалентную GUID-команду. По кр. мере конкретный GUID неочевиден, если нет параметра ParsingName.
alex
Ту программу что вы предлагаете CLSID Dump
Вы уже извините за прямоту не программа а поделка какаято
Vadim Sterkin
alex, если у вас есть конкретные предложения по улучшению программы, либо вы хотите сообщить о баге, свяжитесь с ее автором (сайт указан).
Если у вас есть конкретные предложения по извлечению CLSIDs другим путем, я весь внимание.
Сергей
Vadim Sterkin, подскажите, пожалуйста, почему CSLID Dump запускается под Windows 8.1, x64 с ошибкой? Автору утилиты я отписался, но может вам известно решение.
Vadim Sterkin
Неизвестно
evdpavel
Спасибо, информативно.
did5
Ввожу через выполнить shell:Links (либо другие команды shell), но вылетает ошибка: Не удается найти «shell:Links». Проверьте, правильно ли указано имя и повторите попытку.
В чем может быть проблема?
Система Windows 7 Pro x32 rus
did5
Хм. а команда shell:Windows — работает
Vadim Sterkin
did5, даже не знаю, что вам посоветовать.
Во-первых, проверьте, работают ли команды путем ввода в диалог «Выполнить» (WIN+R). При этом не нужно вводить «shell:» (просто вводите Links или Searches). Скорее всего работать тоже не будет.
Во-вторых, проверьте, прописаны ли команды в
В разделе поиском ищите, например, Links. Должно выглядеть так.
Andrew Zaslavskiy
Вадим, спасибо за статью. Ваши статьи, как и эта крайняя, научили меня структурно подходить к вопросу изучения проблем c ОС. Я почти перестал пользоваться всякими «программками», (почти, потому как некоторые утилиты от NirSoft и Sysinternals, все-таки, являются сторонним ПО,а не отладочным от Microsoft). Я стал с интересом изучать внутренние устройство Windows и понял, что меня затянуло :).
Еще раз большое спасибо.
написал как-то сумбурно. Но меня ждет основная работа. Засим откланяюсь до вечера, когда смогу на практике опробовать Ваши советы
Филипп
Во давно искал этот сайт))
Роман
Здравствуйте!
Подскажите пожалуйста путь в папку системной утилиты Windows 7
для записи дисков. Похоже, что она у меня работает только на чтение:
в контекстном меню «отправить» нет ярлыка дисковода (попытки его
создать через Shell:SendTo ни к чему не приводят), а в контекстном
меню самого дисковода нет команды «вставить». Перетаскивание мышью тоже ничего не дает. Хотелось бы решить эту проблему , чтобы
эта утилита работала полноценно: и на запись-стирание дисков тоже.
С уважением, Роман.
Vadim Sterkin
Роман, обратитесь в http://forum.oszone.net/
Александр
Здравствуйте, Вадим!
В папку «Отправить» (shell:SendTo) каждый раз после очередного обновления Windows копирую заново ярлыки со ссылками на сетевые папки. При очередном обновлении Windows эти ярлыки удаляются.
Что можно сделать для сохранения указанных ярлыков?
OS: Windows7 — Windows 10.
Vadim Sterkin
Александр, что значит «обновления»? Установки обновлений или обновления 7→10?
А так, автоматизируйте копирование ярлыков — командный файл с copy, да хоть в планировщик при перезагрузке :)
Александр
Удаление ярлыков происходит и на Windows 7 и на Windows 10 при поступлении в них обновлений (которые запускаются автоматически).
Да, я думаю можно организовать в планировщике, чтобы каждый раз после загрузки компьютера копировать (или перезаписывать существующие) ярлыки. Но мне казалось, что можно один раз где-то прописать для их сохранения (для сохранения содержимого папки SendTo).