Windows специальные папки: Системные и специальные папки. Реестр Windows
Специальные папки Windows
Для получения пути к специальным папкам Windows типа Мои документы, Рабочий стол и т.д. используется свойство SpecialFolders объекта WshShell.
Синтаксис:
object.SpecialFolders(objWshSpecialFolders)
где
object — объект WshShell;
objWshSpecialFolders – специальная папка.
objWshSpecialFolders | Название папки |
Desktop | Рабочий стол |
Favorites | Избранное |
Fonts | Шрифты |
MyDocuments | Мои документы |
NetHood | Пустая папка, используемая в качестве шаблона для сетевой среды. |
PrintHood | Принтеры |
Programs | Программы, меню “Пуск” |
Recent | Раздел просмотренных документов, меню “Пуск” |
SendTo | Отправить |
StartMenu | Меню “Пуск” |
Startup | Автозагрузка |
Templates | Шаблоны |
Кроме вышеперечисленных папок в Windows 2000 доступны:
AllUsersDesktop, AllUsersStartMenu, AllUsersPrograms, и AllUsersStartup.
Для перебора всех элементов коллекции можно применять операторы цикла For или For Each …In, указав имя коллекции WshShell.SpecialFolders. Свойство Count содержит количество элементов в коллекции.
В качестве примера составим сценарий, узнающий адрес папки “Рабочего стола”.
Dim WshShell, DesktopPath
Set WshShell = CreateObject(«WScript.Shell»)
‘получаем путь к рабочему столу:
DesktopPath = WshShell.SpecialFolders(«Desktop»)
MsgBox «Адрес рабочего стола: » + DesktopPat
Создание ярлыков
Для создания ярлыков используется метод CreateShortcut
Синтаксис:
object.CreateShortcut(strPathname)
где
object — объект WshShell
strPathname — имя и полный путь к ресурсу, для которого создается ярлык (например, это может быть файл, интернет-адрес и т.д.).
Для демонстрации метода CreateShortcut создадим на нашем рабочем столе ярлык блокнота.
В самом процессе создания ярлыка можно выделить несколько этапов:
1. Собственно создание ярлыка.
2. Установка его свойств.
3. Сохранения ярлыка с установленными свойствами
Начнем с первого пункта создадим ярлык на рабочем столе
Dim WshShell, DesktopPath, Nshortcut
‘Создаем объект WshShell:
Set WshShell = CreateObject(“WScript.Shell”)
‘получаем путь к нашему рабочему столу:
DesktopPath = WshShell.SpecialFolders(“Desktop”)
‘создаем ярлык:
Set NShortcut = WshShell.CreateShortcut(DesktopPath & “\Блокнот.lnk”)
На втором этапе мы должны установить следующие свойства ярлыка, такие как:
TargetPath – имя ресурса на который ссылается ярлык.
WindowStyle – стиль запускаемого окна.
Может принимать следующие значения:
1 – открыть как обычное окно;
3 – раскрыть на весь экран;
7 – запустить в свернутом виде.
HotKey – устанавливает клавиши быстрого вызова
IconLocation – расположение иконки ярлыка, файлы .exe и .dll могут содержать несколько значков, номера которых начинаются с 0. Можно использовать библиотеки значков, например Moricons.dll или Shell32.dll, находящиеся в папке Windows или во вложенной папке \System.Можно также присвоить путь для .bmp .ico-файла.
Description – всплывающая подсказка (комментарий)
WorkingDirectory – устанавливает рабочий каталог, который приложение использует для хранения временных и других файлов.
И, на самом последнем этапе создания ярлыка, мы сохраняем установленные свойства и сам ярлык методом Save.
Таким образом, наш сценарий полностью будет иметь следующий вид:
VBScript:
Dim WshShell, DesktopPath, Nshortcut
‘Создаем объект WshShell:
Set WshShell = CreateObject(“WScript.Shell”)
‘получаем путь к нашему рабочему столу:
DesktopPath = WshShell.SpecialFolders(“Desktop”)
‘создаем ярлык:
Set NShortcut = WshShell.CreateShortcut(DesktopPath & “\Блокнот.lnk”)
‘С помощью функции API «%windir%» получаем путь к папке
‘WINDOWS и Блокноту и помещаем полученный путь в
‘TargetPath:
NShortcut.TargetPath = «%windir%\notepad.exe»
‘Устанавливаем обычный стиль окна:
NShortcut.WindowStyle = 1
‘Клавиши быстрого вызова:
NShortcut.Hotkey = «CTRL+ALT+f»
‘Путь к файлу иконки:
NShortcut.IconLocation = «notepad.exe, 0»
‘Устанавливаем всплывающую подсказку:
NShortcut.Description = «Ярлык блокнота»
‘Устанавливаем в качестве рабочей папки — Рабочий стол:
NShortcut.WorkingDirectory = DesktopPath
‘Сохраняем настройки и сам ярлык:
NShortcut.Save
Кроме ярлыков к локальным ресурсам можно создавать ярлыки Интернета. Создадим ярлык адреса компании Microsoft.
Dim WshShell, UrlLink
Set WshShell = WScript.CreateObject(«WScript.Shell»)
Set UrlLink = WshShell.CreateShortcut(«Microsoft.URL»)
UrlLink.TargetPath = «http://www.microsoft.com»
UrlLink.Save
Работа с ресурсами локальной сети
Читайте также:
Рекомендуемые страницы:
Поиск по сайту
Объект FileSystemObject метод GetSpecialFolder — Специальные папки Windows
У объекта FileSystemObject есть метод GetSpecialFolder, который позволяет получить список из трёх специальных папок Windows. Сам метод не является панацеей, так как специальных папок может быть намного больше. Для справки, специальные папки Windows – это каталоги, которые создаются самой операционной системой, например, папка с операционной системой Windows.
Давайте рассмотрим общий синтаксис метода GetSpecialFolder:
GetSpecialFolder(folderspace) – видим, что метод принимает только один параметр, параметр является числом и может принимать значения от 0 до 2:
- 0 – папка с операционной системой Windows.
- 1 – специальная папка System32.
- 2 – каталог, содержащий временные файлы.
Сам метод GetSpecialFolder возвращает объект Folder для заданного каталога, для получения пути используется свойство Path.
Хорошо, теперь настало время для написания примеров.
'************************************************** ' Объект FileSystemObjectметод GetSpecialFolder ' Получаем список специальных папок ' GetSpecialFolder.vbs '************************************************** Option Explicit dim FSO, list, i, Folder dim TempPath, TxtFile list ="Некоторые специальные папки Windows:" & vbCrLf & vbCrLf ' создаем ссылку на экземпляр объекта FileSystemObject set FSO=CreateObject ("Scripting.FileSystemObject") 'В цикле получаем список трех специальных папок For i=0 To 2 ' получаем ссылку на объект Folder Set Folder = FSO.GetSpecialFolder(i) list = list & Folder.Path & vbCrLf Next ShowInNotepad(list) 'Процедура создания временного файла с данными Sub ShowInNotepad(StrToFile) TempPath = CreateObject("WScript.Shell").ExpandEnvironmentStrings("%TEMP%") & "\" & FSO.GetTempName Set TxtFile = FSO.CreateTextFile(TempPath) TxtFile.WriteLine(StrToFile) TxtFile.Close CreateObject("WScript.Shell").Run "wordpad.exe " & TempPath End Sub |
Давайте проанализируем всё по-порядку. Сперва мы подключаем объект FileSystemObject — файловая система Windows, ссылка на него хранится в переменной FSO, далее идёт цикл for (детально, «Урок 6 по VBScript: Циклы for…next и for each…next»), в цикле переменная i принимает три значения, от 0 до 2, если указать больший диапазон, то в сценарии возникнет ошибка. В теле цикла мы формируем ссылку на объект Folder, используя метод GetSpecialFolder, в качестве параметра мы передаем переменную i. В переменную list записывается путь к специальной папке.
Скачать архив с примерами
ShowInNotepad – это процедура, в качестве параметра мы передаём ей значение переменной list. В самой переменной происходит создание временной папки, имя ей будет назначаться с помощью метода GetTempName (более детально, читайте статью «Объект FileSystemObject метод DeleteFile и GetTempName»). Далее мы записываем значение переменной list во временный файл, далее – происходит его открытие с помощью метода Run (более детально, читайте статью «Объект WScript.Shell — метод Run»), в качестве программы редакторы мы прописали программу wordpad.exe, при желании вы можете прописать программу notepad.exe.
//************************************************** // Объект FileSystemObject метод GetSpecialFolder // Получаем список специальных папок // GetSpecialFolder.js //************************************************** var FSO, list, i, Folder; var TempPath, TxtFile; list ="Некоторые специальные папки Windows:\n\n"; // создаем ссылку на экземпляр объекта FileSystemObject FSO= WScript.CreateObject("Scripting.FileSystemObject"); //В цикле получаем список трех специальных папок for (i=0; i<=2; i++){ // получаем ссылку на объект Folder Folder = FSO.GetSpecialFolder(i); list += Folder.Path + "\n"; } ShowInNotepad(list) //Процедура создания временного файла с данными function ShowInNotepad(StrToFile){ TempPath = WScript.CreateObject("WScript.Shell").ExpandEnvironmentStrings("%TEMP%") + "\\" + FSO.GetTempName(); TxtFile = FSO.CreateTextFile(TempPath); TxtFile.WriteLine(StrToFile); TxtFile.Close(); WScript.CreateObject("WScript.Shell").Run ("wordpad.exe " + TempPath); } |
Тут, как и в предыдущем примере, логика работы сценария аналогична. Обратите внимание, тут мы использовали ESC-последовательности языка jscript, которые отвечают за перевод строки. Также, обратите внимание, тут в языке jscript нельзя объявить собственную процедуру, поэтому мы прописали функцию.
Ну что же, в этой статье мы рассмотрели метод GetSpecialFolder объекта FileSystemObject, который позволяет получить список некоторых специальных папок Windows, подписывайтесь на обновление блога, что бы быть в курсе новых примеров и статей.
Файловая система
Вся информация (программы,
документы, таблицы, рисунки и пр.) хранится
в файлах. Файл
– поименованное место на диске для
хранения информации. Каждый файл имеет
имя и
расширение. Расширение
указывает на тип файла. Имя файла может
иметь до 255 символов; расширение – до 3
символов. Расширение отделяется от
имени точкой.
Например:
Договор аренды.doc
В имени и расширении файла нельзя
использовать следующие символы:
* ? \ / | : < > «
Перед именем файла стоит его значок,
который указывает на расширение (тип)
файла. Наиболее часто встречаются такие
значки файлов:
— файлы с расширением | |
– файлы с расширением | |
– файлы с расширением | |
– файлы с расширением | |
– файлы с расширением |
Папка (каталог)
– поименованное место на диске для
хранения файлов. Имя папки может иметь
до 255 символов. Каждая папка может
включать в себя другие папки, документы,
таблицы, рисунки и пр. Совокупность
папок образует древовидную структуру
(рис.10). Если папка X входит в папку Y, то
папка Х называется
вложенной папкой папки
Y. Значок обычной папки изображен на
рис.9. Д
Рис.9
ля открытия папки необходимо дважды
щелкнуть на ее значке.
После этого откроется окно, в котором
будет представлено содержимое этой
папки.
В случае обращения к файлу
необходимо указать его путь.
Путь – это последовательность
из имен логического диска, папок и
вложенных папок, разделенных символом
«\». Например, обращение к файлу Устав.doc,
который находится на диске С:
в папке Договора,
которая входит в
папку Мои
документы (рис.7):
С:\Мои
документы\Договора\Устав.doc
Папка, с которой в данное
время работает пользователь, называется
открытой
(текущей) папкой.
Если нужный файл находится в открытой
папке, то путь к файлу можно не указывать.
Специальные папки Рабочего стола
Мой компьютер
– специальная папка, которая позволяет
просматривать содержимое дисков
компьютера и выполнять различные
операции с файлами и папками (запуск
программ, копирование, перемещение,
удаление файлов, создание папок и др.).
Корзина –
специальная папка, содержащая список
всех удаленных файлов и папок.
Портфель
– системная папка, которая используется
для согласования копий документов,
обрабатываемых в различных компьютерах.
Сетевое окружение
– специальная папка, которая используется
для просмотра содержимого дисков
компьютеров, подключенных к локальной
сети, и выполнения различных операций
на них.
С:\
Anty
Авторский договор.doc
Program Files
Доверенность.doc
Windows
Договор на обслуживание.doc
Мои документы
Арендa.doc
Договора
Устав.doc
Учредительный договор.doc
Отчет
Отчет за І квартал.xls
Письма
Отчет за ІІ квартал.xls
Отчет за І полугодие.xls
Словари
Отчет за ІІІ квартал.xls
Rump
Отчет за ІV квартал.xls
Ruta
Stylus
Autoexec.bat
Command.com
Рис.10.
Пример расположения файлов и папок
на диске
Системные файлы и папки Windows
Опубликовано: 16.10.2012
Со временем на компьютере накапливается огромное количество всевозможных файлов и папок. Однако сразу после установки Windows, на системном диске пользователю видны всего несколько каталогов: Documents and Settings, Program Files и WINDOWS. Это системные каталоги, создаваемые Windows XP в процессе установки.
Помимо данных каталогов, на диске имеются другие файлы и папки, но они скрыты от наших глаз. Чтобы увидеть их: в окне Мой компьютер выберите в строке меню “Сервис” – “Свойства папки” – “Вид”. Снимите галку с пункта “Скрывать защищенные системные файлы (рекомендуется)” и отметьте пункт “Показывать скрытые файлы и папки” – нажмите ОК.Вы увидите папки System Volume Information и RECYCLER, а также несколько файлов. Т.к. они отвечают за правильную работу Windows, то по умолчанию скрыты от пользователей компьютера.
Теперь рассмотрим подробнее, что же хранится в системных каталогах Windows:
В папке Documents and Settings находятся профили (различные данные и настройки) пользователей, работающих с системой. Для каждого пользователя отводится своя папка. Каталоги All Users, Default User, LocalService, NetworkService и Администратор (либо Administrator, что одно и то же) создаются самой Windows. Они существуют вне зависимости от того, добавляли вы пользователей с такими именами или нет. Папка Администратор хранит файлы и настройки, необходимые для работы под встроенной учетной записью Администратора.
Каталог Program Files содержит папки с программами, установленными как в процессе инсталляции Windows, так и пользователями компьютера. Для каждой программы отведена отдельная папка. Если после удаления программы с компьютера, ее папка остается, то рекомендуется вручную удалить ее из каталога Program Files. Иначе при частой инсталляции и удалении программ в данной папке может накопиться изрядное количество мусора.
Папка System Volume Information по умолчанию является скрытой. Программа восстановления системы Windows XP создает в ней копии реестра. Т.е. здесь хранятся каталоги точек восстановления системы, отсортированные по дате создания. Windows не позволяет просматривать содержимое каталога System Volume Information обычным способом. Размер данной папки зависит от объема дискового пространства, резервируемого системой под точки восстановления. Можно вообще отключить восстановление системы: для этого кликните правой клавишей мыши по значку “Мой компьютер” – выберите “Свойства” – перейдите во вкладку “Восстановление системы” и установите флажок напротив пункта “Отключить восстановление системы на всех дисках”: Однако намного лучше на той же вкладке просто ограничить объем дискового пространства, резервируемого системой под точки восстановления (это можно сделать, выбрав доступный диск и нажав кнопку “Параметры”).
Папка RECYCLER не что иное, как Корзина с Рабочего стола Windows.
В папке WINDOWS располагается операционная система, все ее настройки, служебные программы, драйверы и т.д. Содержимое данной папки ни в коем случае нельзя изменять. Во многих инструкциях и справочниках вместо папки WINDOWS пишут %SystemRoot% (это одно и тоже).
А теперь посмотрим, какие важнейшие папки и файлы содержит каталог WINDOWS:
В папке Driver Cache/i386 находится кэш драйверов. Если ее удалить, то при добавлении любого нового оборудования Windows будет запрашивать установочный диск.
В папке Media хранятся звуковые файлы для озвучивания системных событий.
В папке Minidump хранится малый дамп памяти – это специальная запись минимального набора сведений, необходимых для определения причины неполадок. Windows XP каждый раз при возникновении неустранимой ошибки будет автоматически создавать новый файл в данной папке. Каталог Minidump задается в диалоговом окне “Загрузка и восстановление”: щелкните правой клавишей мыши по значку “Мой компьютер” – “Свойства” – вкладка “Дополнительно” – в разделе “Загрузка и восстановление” нажмите кнопку “Параметры”. Найдите строчку “Папка малого дампа”:В папке SoftwareDistribution хранятся папки и файлы, закачанные с помощью автоматического обновления Windows XP. В принципе эту папку можно удалить – в этом случае система создаст ее заново. На различных форумах некоторые пользователи утверждали, что удаление этой папки иногда помогало решить проблему сбоев при автоматическом обновлении.
Файл hiberfil.sys появляется в папке WINDOWS, если разрешен спящий режим. В этот файл при бездействии система сбрасывает весь объем ОЗУ, поэтому он равен размеру установленной оперативной памяти.
Папка system32 – очень важная папка, отвечающая за все настройки системы. Кроме того, в ней содержатся практически все служебные программы и системные утилиты. Здесь вы можете найти Блокнот (notepad.exe), Калькулятор (calc.exe), утилиту очистки диска от мусора (cleanmgr.exe) и многие другие программы.
В папке system32\drivers находятся файлы драйверов. В папке system32\drivers\etc есть файл hosts. Он предназначен для сопоставления IP-адресов и доменных имен компьютеров и серверов интернета. Наиболее распространенное использование файла hosts – блокировка определенных сайтов.
В папке system32\config содержатся файлы, которые работают с реестром:
файл AppEvent.Evt является журналом событий приложений, используемого реестром Windows;
файл SAM содержит раздел реестра HKLM\SAM;
файл SecEvent.Evt является журналом событий безопасности, используемого реестром Windows;
файл SECURITY содержит раздел реестра HKLM\SECURITY;
файл software содержит раздел реестра HKLM\Software;
файл SysEvent.Evt является журналом событий системы, используемого реестром Windows;
файл system содержит раздел реестра HKLM\System.
В папке system32\Restore содержится программа восстановления системы rstrui.exe и сопутствующие файлы.
Итак, сегодня мы с вами узнали (а кто-то просто вспомнил) какие важные файлы и папки хранятся на системном диске. В ближайших статьях мы рассмотрим как управлять процессами и службами Windows, что такое реестр и как сделать его резервную копию.
Просмотров: 92 049            
Специальные папки Windows — Step-by-step. Пошаговые заметки — LiveJournal
Специальные папки Windows
Многие администраторы с удовольствием используют встроенный функционал Windows по перенаправлению т.н. специальных папок пользователей.
Статья «Функция перенаправления папок в Windows» на Support Microsoft: https://support.microsoft.com/ru-ru/help/232692/folder-redirection-feature-in-windows
Перенаправление папок — это политика группы Пользователи.
Для этого используется объект групповой политики:
Конфигурация пользователя\Конфигурация Windows\Перенаправление папок |
Переменная %UserName% может использоваться как часть пути перенаправления, что дает файловой системе возможность динамически создавать новую папку перенаправления для каждого пользователя, к которому применяется объект групповой политики.
Также удобно использовать переменные:
%UserProfile%
%SystemRoot%
Кроме вышеуказанного можно манипулировать со следующими специальными папками: статья в Wikipedia на англ.
Хоть Windows Vista и считалась неудачной ОС, но в ней было заложено очень много новшеств. Windows Vista на Wikipedia
Ссылки на специальные папки т.н. Shell Folders есть в реестре Windows:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Win HKEY_CURRENT_USER\SOFTWARE\Microsoft\Win |
В реестре Windows можно найти путь, где хранятся обои Windows:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Win |
Также список последних запускавшихся программ в ветке:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Win |
И настройки для Internet Explorer в ветке:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Win |
Объект WScript.Shell метод SpecialFolders — Системные папки Windows
Всем привет, с вами автор блога scriptcoding.ru. В этой статье мы изучим свойство объекта WScript Shell SpecialFolders, которое позволяет взаимодействовать с системными папками Windows.
Специальные паки или системные папки Windows – это каталоги типа Шрифты, Мои Документы текущего пользователя или Главное меню (Пуск). Частично, работу с системными папками Windows я рассмотрел в статье «Объект FileSystemObject метод GetSpecialFоldеr».
Системные папки Windows
Свойство SреcialFolders класса WScript_Shell предоставляет доступ к коллекции, у которой есть свойство length и count, а также метод item. Оба свойства (length и и count) выполняют идентичную задачу – они позволяют получить общее количество всех элементов коллекции. Метод item(str) позволяет получить информацию о текущем элементе (параметр str) коллекции.
Прежде всего, давайте рассмотрим, какие есть системные (специальные) папки Windows:
- Desktop — Рабочий стол
- Favorites — Меню Избранное
- Fonts – Каталог со шрифтами
- MyDocuments –Мои документы
- NetHood — Пустая директория, используемая в качестве шаблона для сетевой среды.
- PrintHood — Пустая директория, используемая для отображения принтеров в сети.
- Programs — Подменю Программы меню Пуск
- Recent — Каталог со списком последних открываемых документов
- SendTo — Указывает на каталог SendTo.
- StartMenu — Главное меню (Пуск)
- Startup — Автозагрузка
- Templates — Директория ShellNew, содержащая шаблоны для создаваемых файлов.
Хорошо, с теорией мы закончили, теперь можно приступить к программированию. Для начала напишем сценарий на языке vbscript:
' *********************************************************** ' wscript_shell_specialFolders ' Выводим список всех системных папок Windows ' special.vbs '************************************************************ Option Explicit Dim SpecObj, WshShell Dim list_1, list_2, index, i list_1 = "Список системных папок Windows:" & vbCrLf & vbCrLf list_2 = "Список системных папок Windows:" & vbCrLf & vbCrLf ' Создаем ссылку на класс WScript_Shell set WshShell = WScript.CreateObject("WScript.Shell") ' Создаем ссылку на коллекцию SpecialFоldеrs set SpecObj = WshShell.SpecialFolders ' Используем пройстой цикл for i=0 to SpecObj.Count-1 list_1 = list_1 & SpecObj(i) & vbCrLf next MsgBox list_1 ' Используем специальный цикл For Each index In WshShell.SpecialFolders list_2 = list_2 & index & vbCrLf Next MsgBox list_2 |
В этом примере используются два цикла для получения списка всех системных папок Windows. Первый цикл является стандартным, в нем мы указали переменную i, задали ей начальное значение – 0 и прописали условие окончания: SpесОbj.Count-1, тут SpесОbj является переменной, которая хранит в себе ссылку на коллекцию SpecialFоlders класса WScript_Shell. Так как нумерация элементов коллекции начинается с нуля, то мы приписали Count-1, что практически означает – общее количество минус 1. Вместо свойства Count мы могли использовать и length для определения количества всех элементов. Второй цикл также позволяет получить все системные папки Windows, но он является специализированным, и используется в том случае, когда начальное и конечное значения не известны. Оба подхода вернут одинаковый результат.
Также видим, что сначала мы создали ссылку на объект WScript.Shell – она хранится в переменной WshShell, перед переменной находится ключевое слово set. Используя переменную WshShell, мы обратились к свойству SpесialFolders WScript_Shell объекта, тем самым получили доступ к коллекции.
Теперь давайте рассмотрим аналогичный пример, но уже на языке jscript.
// *********************************************************** // wscript_shell_specialFolders // Выводим список всех системных папок Windows // special.js //************************************************************ var SpecObj, WshShell, col; var list_1, list_2, index, i; list_1 = "Список системных папок Windows:\n\n"; list_2 = "Список системных папок Windows:\n\n"; // Создаем ссылку на класс WScript_Shell WshShell = WScript.CreateObject("WScript.Shell"); // Создаем ссылку на коллекцию SресialFolders SpecObj = WshShell.SpecialFolders; // Объект Enumerator col = new Enumerator(SpecObj); // Используем пройстой цикл for (i=0; i<=SpecObj.Length-1; i++){ list_1+=SpecObj(i) + "\n"; } WScript.Echo(list_1); // Используем специальный цикл for (; !col.atEnd(); col.moveNext()) list_2+=col.item()+"\n"; WScript.Echo(list_2); |
Тут нам пришлось использовать объект Enumerator языка jscript, что бы обработать коллекцию. Как и в предыдущем примере, тут я использовал два цикла – стандартный и специализированный. Системные папки Windows.
Скачать архив с примерами
Хорошо, теперь давайте рассмотрим еще такой пример.
' *********************************************************** ' wscript_shell_specialFolders ' Использование метода item ' Системные папки ОС Windows ' special_1.vbs '************************************************************ Option Explicit Dim SpecObj, WshShell, list ' Создаем ссылку на класс WScript_Shell set WshShell = WScript.CreateObject("WScript.Shell") ' Создаем ссылку на коллекцию SреcialFolders set SpecObj = WshShell.SpecialFolders ' рабочий стол list = SpecObj.item("Desktop") & vbCrLf ' шрифты list = list & SpecObj.item("Fonts") & vbCrLf ' меню Пуск list = list & SpecObj.item("StartMenu") & vbCrLf ' подменю Программы list = list & SpecObj.item("Programs") MsgBox list |
В этом примере с помощью метода item мы получили полный путь к заданным системным папкам Windows.
Вот аналогичный пример на языке jscript:
// *********************************************************** // wscript_shell_specialFolders // Использование метода item // Системные папки ОС Windows // special_1.js //************************************************************ var SpecObj, WshShell, list; // Создаем ссылку на класс WScript_Shell WshShell = WScript.CreateObject("WScript.Shell"); // Создаем ссылку на коллекцию SресialFolders SpecObj = WshShell.SpecialFolders; // рабочий стол list = SpecObj.item("Desktop") + "\n" // шрифты list+= SpecObj.item("Fonts") + "\n" // меню Пуск list+= SpecObj.item("StartMenu") + "\n" // подменю Программы list+= SpecObj.item("Programs") WScript.Echo(list); |
И так, в этой статье мы рассмотрели системные папки Windows, а точнее метод SpecialFolders объекта Wscript_Shell.
Как открыть скрытые системные папки с Shell командами Windows
Многие скрытые системные папки в Windows идентифицируются в реестре Windows вместе с ключом идентификатора класса (CLSID), именами специальных папок и папками на Вашем ПК. Использование этих специальных имен папок вместе с Shell командами означает, что даже скрытые папки, глубоко погруженные в Вашу файловую систему, всегда находятся всего в нескольких нажатиях клавиш.
Что такое CLSID ключи?
Специфическим папкам (а также некоторым программным компонентам) предоставляется CLSID, который позволяет Windows и другим программам легко идентифицировать их, не зная их точного имени. CLSID ключи, общие имена и полные пути к этим папкам сохраняются как записи в реестре Windows. Это похоже на то, как каждый компьютер в Вашей сети имеет регулярное имя, которое Вам легко запомнить — при использовании имени компьютера Windows просматривает IP-адрес компьютера от Вашего имени.
Точно так же программы могут использовать общее имя для папки в структуре Windows и полагаться на фактическое местоположение, которое хранится как CLSID ключ в реестре. Shell объекты, с которыми мы будем работать, перечислены в Реестре в следующем месте:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions
Каждый подраздел в длинном списке внутри ключа FolderDescriptions представляет собой специальную папку. Имя каждого ключа — это CLSID этой папки. Нажмите на любой из них, и Вы увидите несколько важных значений, прикрепленных к этому ключу, такие как Name (общее имя папки) и RelativePath (фактический путь, где находится папка).
Как выполнить Shell команду
Итак, что Вы можете сделать с этой информацией? Вы можете создать специальную команду с именем Shell, за которой следует общее имя папки, чтобы открыть эту папку. Вы можете отправить Shell команду из диалогового окна «Выполнить» (Windows + R), адресной строки Windows File Explorer или даже адресной строки Internet Explorer. Просто введите команду, используя следующий формат:
Вот пример. Скажем, Вы хотите открыть папку, содержащую изображения, связанные с Вашей учетной записью Windows. Вместо того, чтобы просматривать папку AppData Вашей учетной записи (кстати, скрытую папку), а затем найти папку со снимками Вашей учетной записи, Вы можете просто запустить окно «Выполнить», написать следующую команду и нажать «Enter»:
Какие имена папок доступны?
Это все очень хорошо, но действительно ли стоит просматривать все записи реестра, чтобы найти имена папок? Может быть да, а может быть и нет. К счастью, для этого у Вас есть мы. Ниже приведен список всех имен папок, которые Вы можете использовать после команды Shell, а также относительные местоположения этих папок.
- shell:AccountPictures – %AppData%\Microsoft\Windows\AccountPictures
- shell:AddNewProgramsFolder – Control Panel\All Control Panel Items\Get Programs
- shell:Administrative Tools – %AppData%\Microsoft\Windows\Start Menu\Programs\Administrative Tools
- shell:AppData – %AppData%
- shell:Application Shortcuts – %LocalAppData%\Microsoft\Windows\Application Shortcuts
- shell:AppsFolder – Приложения
- shell:AppUpdatesFolder – Установленные обновления
- shell:Cache – %LocalAppData%\Microsoft\Windows\INetCache
- shell:Camera Roll – %UserProfile%\Pictures\Camera Roll
- shell:CD Burning – %LocalAppData%\Microsoft\Windows\Burn\Burn
- shell:ChangeRemoveProgramsFolder – Control Panel\All Control Panel Items\Programs and Features
- 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\Programs\Startup
- shell:Common Startup – %ProgramData%\Microsoft\Windows\Start Menu\Programs\Startup
- shell:Common Templates – %ProgramData%\Microsoft\Windows\Templates
- shell:CommonVideo – %Public%\Videos
- shell:ConflictFolder – Control Panel\All Control Panel Items\Sync Center\Conflicts
- shell:ConnectionsFolder – Control Panel\All Control Panel Items\Network Connections
- shell:Contacts – %UserProfile%\Contacts
- shell:ControlPanelFolder – Control Panel\All Control Panel Items
- shell:Cookies – %LocalAppData%\Microsoft\Windows\INetCookies
- shell:Cookies\Low – %LocalAppData%\Microsoft\Windows\INetCookies\Low
- shell:CredentialManager – %AppData%\Microsoft\Credentials
- shell:CryptoKeys – %AppData%\Microsoft\Crypto
- shell:desktop – Desktop
- shell:device Metadata Store – %ProgramData%\Microsoft\Windows\DeviceMetadataStore
- shell:documentsLibrary – Libraries\Documents
- shell:downloads – %UserProfile%\Downloads
- shell:dpapiKeys – %AppData%\Microsoft\Protect
- shell:Favorites – %UserProfile%\Favorites
- shell:Fonts – %WinDir%\Fonts
- shell:Games – Games
- shell:GameTasks – %LocalAppData%\Microsoft\Windows\GameExplorer
- shell:History – %LocalAppData%\Microsoft\Windows\History
- shell:HomeGroupCurrentUserFolder – Homegroup\(user-name)
- shell:HomeGroupFolder – Homegroup
- shell:ImplicitAppShortcuts – %AppData%\Microsoft\Internet Explorer\Quick Launch\User Pinned\ImplicitAppShortcuts
- shell:InternetFolder – Internet Explorer
- shell:Libraries – Libraries
- shell:Links – %UserProfile%\Links
- shell:Local AppData – %LocalAppData%
- shell:LocalAppDataLow – %UserProfile%\AppData\LocalLow
- shell:MusicLibrary – Libraries\Music
- shell:MyComputerFolder – This PC
- shell:My Music – %UserProfile%\Music
- shell:My Pictures – %UserProfile%\Pictures
- shell:My Video – %UserProfile%\Videos
- shell:NetHood – %AppData%\Microsoft\Windows\Network Shortcuts
- shell:NetworkPlacesFolder – Network
- shell:OneDrive – OneDrive
- shell:OneDriveCameraRoll – %UserProfile%\OneDrive\Pictures\Camera Roll
- shell:OneDriveDocuments – %UserProfile%\OneDrive\Documents
- shell:OneDriveMusic – %UserProfile%\OneDrive\Music
- shell:OneDrivePictures – %UserProfile%\OneDrive\Pictures
- shell:Personal – %UserProfile%\Documents
- shell:PicturesLibrary – Libraries\Pictures
- shell:PrintersFolder – All Control Panel Items\Printers
- shell:PrintHood – %AppData%\Microsoft\Windows\Printer Shortcuts
- shell:Profile – %UserProfile%
- shell:ProgramFiles – %ProgramFiles%
- shell:ProgramFilesCommon – %ProgramFiles%\Common Files
- shell:ProgramFilesCommonX64 – %ProgramFiles%\Common Files (64-bit Windows только)
- shell:ProgramFilesCommonX86 – %ProgramFiles(x86)%\Common Files (64-bit Windows только)
- shell:ProgramFilesX64 – %ProgramFiles% (64-bit Windows только)
- shell:ProgramFilesX86 – %ProgramFiles(x86)% (64-bit Windows только)
- shell:Programs – %AppData%\Microsoft\Windows\Start Menu\Programs
- shell:Public – %Public%
- shell:PublicAccountPictures – %Public%\AccountPictures
- shell:PublicGameTasks – %ProgramData%\Microsoft\Windows\GameExplorer
- shell:PublicLibraries – %Public%\Libraries
- shell:Quick Launch – %AppData%\Microsoft\Internet Explorer\Quick Launch
- shell:Recent – %AppData%\Microsoft\Windows\Recent
- shell:RecordedTVLibrary – Libraries\Recorded TV
- shell:RecycleBinFolder – Recycle Bin
- shell:ResourceDir – %WinDir%\Resources
- shell:Ringtones – %ProgramData%\Microsoft\Windows\Ringtones
- shell:Roamed Tile Images – %LocalAppData%\Microsoft\Windows\RoamedTileImages
- shell:Roaming Tiles – %AppData%\Microsoft\Windows\RoamingTiles
- shell:SavedGames – %UserProfile%\Saved Games
- shell:Screenshots – %UserProfile%\Pictures\Screenshots
- shell:Searches – %UserProfile%\Searches
- shell:SearchHistoryFolder – %LocalAppData%\Microsoft\Windows\ConnectedSearch\History
- shell:SearchHomeFolder – search-ms:
- shell:SearchTemplatesFolder – %LocalAppData%\Microsoft\Windows\ConnectedSearch\Templates
- shell:SendTo – %AppData%\Microsoft\Windows\SendTo
- shell:Start Menu – %AppData%\Microsoft\Windows\Start Menu
- shell:StartMenuAllPrograms – StartMenuAllPrograms
- shell:Startup – %AppData%\Microsoft\Windows\Start Menu\Programs\Startup
- shell:SyncCenterFolder – Control Panel\All Control Panel Items\Sync Center
- shell:SyncResultsFolder – Control Panel\All Control Panel Items\Sync Center\Sync Results
- shell:SyncSetupFolder – Control Panel\All Control Panel Items\Sync Center\Sync Setup
- shell:System – %WinDir%\System32
- shell:SystemCertificates – %AppData%\Microsoft\SystemCertificates
- shell:SystemX86 – %WinDir%\SysWOW64
- shell:Templates – %AppData%\Microsoft\Windows\Templates
- shell:ThisPCDesktopFolder – Desktop
- shell:UsersFilesFolder – %UserProfile%
- shell:User Pinned – %AppData%\Microsoft\Internet Explorer\Quick Launch\User Pinned
- shell:UserProfiles – %HomeDrive%\Users
- shell:UserProgramFiles – %LocalAppData%\Programs
- shell:UserProgramFilesCommon – %LocalAppData%\Programs\Common
- shell:UsersLibrariesFolder – Libraries
- shell:VideosLibrary – Libraries\Videos
- shell:Windows – %WinDir%
Конечно, как только Вы найдете эти папки, Вы можете легко добавить их в закладки, чтобы в будущем Вы могли перейти к ним еще быстрее.
Есть ли подробное руководство для специальных папок в Windows?
Переполнение стека
- Около
Продукты
- Для команд
Переполнение стека
Общественные вопросы и ответыПереполнение стека для команд
Где разработчики и технологи делятся частными знаниями с коллегамиВакансии
Программирование и связанные с ним технические возможности карьерного ростаТалант
Нанимайте технических специалистов и создавайте свой бренд работодателяРеклама
Обратитесь к разработчикам и технологам со всего мира- О компании
Загрузка…
.
См. Также
ОписаниеВ операционной системе Windows есть десятки специальных папок, которые используются для Системные требованияЭта утилита работает в Windows 2000, Windows XP, Windows Server 2003, Windows Server 2008, Windows Vista, Windows 7, Windows 8 и Windows 10. История версий
Использование SpecialFoldersViewSpecialFoldersView не требует установки или дополнительных файлов DLL.Для того, чтобы начать им пользоваться, просто запустите исполняемый файл — SpecialFoldersView.exe. Список специальных папок, образецВ следующем примере вы можете найти список всех специальных папок при типичной установке Windows XP с пользователем «Администратор».
Параметры командной строки
Перевод специальных папок на другие языкиЧтобы перевести SpecialFoldersView на другой язык, следуйте инструкциям ниже:
ЛицензияЭта утилита выпущена как бесплатное ПО. Заявление об ограничении ответственностиПрограммное обеспечение предоставляется «КАК ЕСТЬ» без каких-либо явных или подразумеваемых гарантий, Обратная связьЕсли у вас есть проблема, предложение, комментарий или вы обнаружили ошибку в моей утилите, SpecialFoldersView также доступен на других языках. Чтобы изменить язык |
.
Запуск специальных папок Windows — Rainmeter
Наконечник от kenz0 и JSMorley
Windows имеет много «специальных папок», таких как «Мой компьютер» и «Корзина», которые не являются частью обычной системы папок. Вы можете указать «путь» для действия в Rainmeter или запустить иначе, чем они отображаются в проводнике.
Доступ к этим папкам можно получить с помощью команды Windows Shell:
и идентификаторов CLSID, которые Windows назначает этим папкам в реестре Windows.Если вы знаете коды, вы можете легко их запустить.
Добавить сетевое расположение :: {D4480A50-BA28-11d1-8E75-00C04FA31A86} Инструменты администрирования |
[MeterMyComputer] |
Или вы можете использовать оболочку с именем :
команд, поддерживаемых вашей версией Windows:
Эти команды открывают определенные системные папки:
оболочка: AccountPictures Изображения учетной записи |
.
Как использовать специальные папки Windows в пути в файле конфигурации для сборки C # (4.)?
Я хотел бы указать путь в файле конфигурации для моей сборки C # 4.0.
Вероятно, путь будет к одной из специальных папок Windows (CommonApplicationData). Однако в моем коде я не хочу предполагать, что на этом пути будет специальная папка, мне просто нужен простой / прямой способ ее расширения, если он есть.
Статический метод GetFullPath класса Path не обрабатывает Environment.].
Мы все еще работаем на XP и добавляем поддержку Widnows 7 (я не думаю, что мы поддерживаем Vista)
Итак, я полагаю, что мог бы поместить% CSIDL_COMMON_APPDATA% в путь в моем файле конфигурации и использовать ExpandEnvironmentVariable (), предполагая, что я Я не устанавливаю в Windows 7, и в этом случае я предполагаю, что моему установщику необходимо обновить файлы конфигурации, чтобы использовать «FOLDERID_ProgramData».
Так я должен решать эту проблему?
Есть лучшая практика, которую я пропустил?
1.Как мне представить специальную папку Windows в строке пути в файле конфигурации?
2. Как мне расширить это представление до полного пути в моем коде?
Любые советы приветствуются, спасибо.
[Уточнение]
Судя по ответу JSOP, это, вероятно, просто принятие желаемого за действительное, но я подумал, что уточню, чего именно я пытаюсь достичь:
Я понимаю перечисление Environment.SpecifalFolder и как использовать метод Environment.GetFolderPath , Я даже могу преобразовать строковое представление специальной папки в путь:
Environment.GetFolderPath ((Environment.SpecialFolder) Enum.Parse (typeof (Environment.SpecialFolder), mySpecialFolder))
Я стараюсь не разбивать свой путь на две части в конфигурации и обрабатывать часть SpecialFolder отдельно, потому что мы может фактически не использовать специальную папку.
Я хотел бы иметь возможность настроить свой путь как:
"C: \ MyCompanyName \ MyAppName \ MyFolder"
или
"C: \ Documents and Settings \ All User \ Application Data \ MyCompanyName \ MyAppName \ MyFolder"
Но я бы не хотел явно расширять специальную папку в файле конфигурации.
Я хотел бы иметь возможность ввести:
"% CSIDL_COMMON_APPDATA% \ MyCompanyName \ MyAppName \ MyFolder"
или
"% FOLDERID_ProgramData% \ MyCompanyName \ MyAppName \ MyFolder"
или
"% System.Environment.SpecialFolder.CommonApplicationData% \ MyCompanyName \ MyAppName \ MyFolder"
или если мы не используем специальную папку, введите просто:
"C: \ MyCompanyName \ MyAppName \ MyFolder"
И я спрашиваю, есть ли библиотечный метод, который позволит мне расширить% обернутых битов в пути автоматически (и что не упадет, если нет% деформированных битов)?
Я предполагаю из более раннего ответа JSOP, что нет.
[/ Разъяснение]
.