Объект Shell

Объект Shell позволяет получить доступ к различным настройкам Windows при помощи технологий COM и Automation, что позволяет использовать JScript и VBScript. Например, можно получить доступ к различным диалоговым окнам, к файловой системе, запускать программы и изменять системные настройки.

Создать объект Shell можно следующим образом:

var objShellApp = WScript.CreateObject("Shell.Application")

Также можно использовать объект ActiveXObject языка JScript:

var objShellApp = new ActiveXObject("Shell.Application")

Свойства

ApplicationВозвращает объект IShellDispatch для текущего приложения.
ParentВозвращает объект IShellDispatch для родительского приложения

Методы

AddToRecentПомещает ярлык на указанный файл в папку "Недавних документов".
BrowseForFolderВызов модального окна "Выбор папки".
CanStartStopServiceОпределяет может ли текущий пользователь запустить/остановить указанный сервис.
CascadeWindowsВыполняет расположение всех несвёрнутых окон рабочего стола Windows каскадом
ControlPanelItemВызов конкретного приложения панели управления.
ExploreЗапускает проводник Windows с определённой открытой папкой.
ExplorerPolicyВозвращает значение указанной Internet Explorer policy
FileRunВызов окна "Запуск программы"
FindComputerВызов окна проводника Windows "Результаты поиска - компьютеры"
FindFilesВызов окна проводника Windows "Результаты поиска"
FindPrinterВызов окна "Поиск принтеров" ("Find Printers") в Active Directory
GetSettingВозвращает значение указанной глобальной установки (параметра) проводника
GetSystemInformationВозвращает некоторую системную информацию
HelpВызов окна справки Windows.
IsRestrictedВВозвращает значение заданного ограничения по данным реестра
IsServiceRunningОпределяет, запущен ли указанный сервис.
MinimizeAllСворачивает все окна рабочего стола Windows.
NameSpaceПолучение объекта виртуальной папки проводника
OpenЗапускает проводник Windows с определённой открытой папкой.
SearchCommandОтображает панель службы поиска.
ServiceStartЗапускает указанный сервис.
ServiceStopОстанавливает указанный сервис.
SetTimeВызов окна настройки времени и даты.
ShellExecuteВыполняет указанное действие над заданным файлом.
ShowBrowserBarОткрывает или закрывает указанную панель обозревателя.
ShutdownWindowsВызов окна выключения и перезагрузки компьютера. .
TileHorizontallyУпорядочивает окна рабочего стола Windows по горизонтали.
TileVerticallyУпорядочивает окна рабочего стола Windows по вертикали
ToggleDesktopСворачивает или разворачивает все окна на рабочем столе.
TrayPropertiesВызов окна свойств панели задач Windows.
UndoMinimizeAllВосстанавливает всех свёрнутые окна рабочего стола Windows
WindowsПолучение объекта "ShellWindows".
WindowsSecurityИмитирует нажатие CTRL+ALT+DELETE.

Application

Синтаксис

// Свойство. Только чтение.

objShellApp.Application

Возвращаемое значение

Объект IShellDispatch для текущего приложения.

Пример

var objShellApp = WScript.CreateObject("Shell.Application");
if (objShellApp.Application.GetSetting(1) == 0) 
    WScript.Echo ( "В «Свойствах папки» в проводнике установлен режим «Не показывать скрытые файлы и папки»" );
else
    WScript.Echo ( "В «Свойствах папки» в проводнике установлен режим «Показывать скрытые файлы и папки»" );

Parent

Синтаксис

// Свойство. Только чтение.

objShellApp.Parent

Возвращаемое значение

Объект IShellDispatch для родительского приложения, если такой имеется.

Пример

var objShellApp = WScript.CreateObject("Shell.Application");
if (objShellApp.Parent.GetSetting(262144) == 0) 
    WScript.Echo ( "В «Свойствах папки» в проводнике установлен режим «Не скрывать защищенные файлы операционной системы»." );
else
    WScript.Echo ( "В «Свойствах папки» в проводнике установлен режим «Скрывать защищенные файлы операционной системы»." );

AddToRecent()

Метод AddToRecent() помещает ярлык на указанный файл в папку "Недавних документов" ("Recent") текущего пользователя. Возвращаемого значения нет.

Синтаксис

objShellApp.AddToRecent( File, Category )

Параметры

File
Строка. Путь к файлу.
Category
Строка (необязательный). Имя категории, в которую помещается файл.

Пример (WindowsXP):

var objShellApp = WScript.CreateObject("Shell.Application");
objShellApp.AddToRecent ("C:\MyFile.txt");

BrowseForFolder()

Метод BrowseForFolder() вызов модального окна "Выбор папки". Возвращает объект "Folder".

Синтаксис

objShellApp.BrowseForFolder( Hwnd, Заголовок, Опции, КорневаяПапка )

Параметры

Hwnd
Дескриптор родительского окна. Тип - целое число. 0 - текущее окно.
Заголовок
Пояснение для пользователя в окне "Выбор папки". Тип - строка.
Опции
Целое число (комбинация битовых флагов). Например, флаг 512 - запретить кнопку "Создать папку", 1 - не отображать Корзину, 16 - отображать EditBox для ввода полного пути с клавиатуры и т.п. Подробнее - см. MSDN.
КорневаяПапка
Необязательный параметр. Корневая папка в окне "Выбор папки". Тип - строка. Пользователь не сможет пройти в окне "Выбор папки" выше этой папки. Если параметр не указан, корневой папкой будет рабочий стол Windows. КорневаяПапка может быть числом, определяющим одну из специальных папок Windows. Коды папок представлены ниже

Пример

var objShellApp = WScript.CreateObject("Shell.Application");
var objFolder = objShellApp.BrowseForFolder(0, "Выбор папки", 0, "C:\\");

if (objFolder) WScript.Echo ( objFolder.Self.Path );
else WScript.Echo ( "Папка не выбрана!" );

CanStartStopService()

Метод CanStartStopService() определяет, может ли текущий пользователь запустить/остановить указанный сервис. Возвращаемое значение - булево (число).

Синтаксис

objShellApp.CanStartStopService( ServiceName )

Параметры

ServiceName
Строка, имя сервиса.

Пример

var objShellApp = WScript.CreateObject("Shell.Application");
var ServiceName = "tlntsvr"
if (!objShellApp.CanStartStopService(ServiceName))
    WScript.Echo ( "Вы НЕ можете остановить/запустить сервис " + ServiceName + "!" );
else
    WScript.Echo ( "Вы можете остановить/запустить сервис " + ServiceName + "!" );

CascadeWindows()

Метод CascadeWindows() распологает все несвёрнутые окна рабочего стола Windows каскадом. Возвращаемого значения нет.

Синтаксис

objShellApp.CascadeWindows()

Параметры

Нет

Комментарии

Вызов метода приводит к тому же эффекту, что и команда "Окна каскадом" ("Cascade Windows") контекстного меню панели задач Windows.

Пример

var objShellApp = WScript.CreateObject("Shell.Application");
objShellApp.CascadeWindows();

ControlPanelItem()

Метод ControlPanelItem() вызывает конкретное приложение панели управления. Возвращаемого значения нет.

Синтаксис

objShellApp.ControlPanelItem( ИмяФайла )

Параметры

ИмяФайла
Имя файла конкретного приложения панели управления. Тип - строка. Пустая строка вызывает саму панель управления.

Комментарии

Все файлы приложений панели управления имеют расширение .cpl. Некоторые приложения панели управления:

Пример

var objShellApp = WScript.CreateObject("Shell.Application");
objShellApp.ControlPanelItem ("desk.cpl");
objShellApp.ControlPanelItem ( "" );

Explore()

Метод Explore() запускает проводник Windows с определённой открытой папкой. Возвращаемого значения нет.

Синтаксис

objShellApp.Explore( Path )

Параметры

Path
Путь к открываемой папке. Тип - строка.

Комментарии

Path может быть числом, определяющим одну из специальных папок Windows. Коды папок - см. описание метода NameSpace.

Пример

var objShellApp = WScript.CreateObject("Shell.Application");
objShellApp.Explore("C:\\");
WScript.Echo("Пауза");
objShellApp.Open("C:\\"); // для сравнения

ExplorerPolicy()

Метод ExplorerPolicy() возвращает значение указанной Internet Explorer policy.

Синтаксис

objShellApp.ExplorerPolicy( PolicyName )

Параметры

PolicyName
Строка. Имя Internet Explorer policy. Указанное имя должно быть в ветке HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer. Если такого имени там нет, то метод возвращает NULL.

Пример

var objShell = new ActiveXObject("Shell.Application"); 
var vReturn; 
vReturn = objShell.ExplorerPolicy("NoDriveTypeAutoRun"); 
WScript.Echo (vReturn);

FileRun()

Метод FileRun() вызывает окно "Запуск программы" ("Run"). Возвращаемого значения нет.

Синтаксис

objShellApp.FileRun ()

Параметры

Нет

Комментарии

Вызов метода приводит к тому же эффекту, что и команда меню "Пуск"-"Выполнить" ("Start"-"Run").

Пример

var objShellApp = WScript.CreateObject("Shell.Application");
objShellApp.FileRun();

FindComputer()

Метод FindComputer() вызывает окно проводника Windows "Результаты поиска - компьютеры" ("Search Results - Computers"). Возвращаемого значения нет.

Синтаксис

objShellApp.FindComputer ( )

Параметры

Нет

Пример

var objShellApp = WScript.CreateObject("Shell.Application");
objShellApp.FindComputer ();

FindFiles()

Метод FindFiles() вызывает окно проводника Windows "Результаты поиска" ("Find: All Files"). Возвращаемого значения нет.

Синтаксис

objShellApp.FindFiles ( )

Параметры

Нет

Комментарии

Вызов метода приводит к тому же эффекту, что и команда меню "Пуск"-"Поиск" ("Start"-"Find").

Пример

var objShellApp = WScript.CreateObject("Shell.Application");
objShellApp.FindFiles ();

FindPrinter()

Метод FindPrinter() вызывает окно "Поиск принтеров" ("Find Printers") в Active Directory с предварительным заполнением параметров поиска. Возвращаемого значения нет.

Синтаксис

objShellApp.FindPrinter( Name, Location, Model )

Параметры

Name
Необязательный. Строка - имя принтера.
Location
Необязательный. Строка - местоположение принтера.
Model
Необязательный. Строка - модель принтера.

Комментарии

Вызов метода приводит примерно к тому же эффекту, что и команда меню "Пуск"-"Поиск"-"Принтеры..."

Пример

var objShellApp = WScript.CreateObject("Shell.Application");
objShellApp.FindPrinter ("Name", "Location", "Model");

GetSetting()

Метод GetSetting() возвращает значение указанной глобальной установки (параметра) проводника.

Синтаксис

objShellApp.GetSetting ( Setting )

Параметры

Setting

Целое число (набор флагов), определяющее глобальную установку (параметр) проводника. Некоторые возможные значения:

  •           1 (0x00000001) - Показывать скрытые файлы и папки.
  •           2 (0x00000002) - Скрывать расширения для зарегистрированных типов файлов.
  •   16384 (0x00004000) - Состояние пиктограмм в списке просмотра Проводника Windows
  •       128 (0x00000080) - Открыть двойным или одиночным щелчком мыши
  •   32768 (0x00008000) - Подтверждение очистки корзины
  • 262144 (0x00040000) - Состояние скрывать защищенные файлы операционной системы.

Более подробно с этим материалом можно ознакомиться на сайте MSDN

Пример

var objShell = new ActiveXObject("shell.application");
WScript.Echo ( objShell.GetSetting ( 32768 ) );

GetSystemInformation()

Метод GetSystemInformation() возвращает некоторую системную информацию. Возвращаемое значение (Return) - зависит от типа запрашиваемой информации. Этот метод может быть использован для запроса различной информации.

Синтаксис

objShellApp.GetSystemInformation( sName )

Параметры

sName
Строка, определяет тип информации:
sNameТип ReturnОписание
DirectoryServiceAvailableBooleanВозвращает true если служба каталогов имеется.
DoubleClickTimeIntegerВремя двойного щелчка, в миллисекундах.
ProcessorLevelIntegerWindows Vista и более поздних версий . Уровень процессора. Возвращает 3, 4 или 5 для процессоров x386, x486 и Pentium соответственно.
ProcessorSpeedIntegerСкорость процессора в мегагерцах (МГц).
ProcessorArchitectureIntegerАрхитектура процессора.
PhysicalMemoryInstalledIntegerКоличество установленной физической памяти, в байтах.
IsOS_ProfessionalBooleanТолько для Windows XP. Возвращает true если операционная система Windows XP Professional Edition.
IsOS_PersonalBooleanТолько для Windows XP. Возвращает true, если операционная система Windows XP Home Edition.
IsOS_DomainMemberBooleanВозвращает true, если компьютер является членом домена.

Комментарии

Подробнее - см. MSDN.

Пример

var objShellApp = WScript.CreateObject("Shell.Application");
WScript.Echo ( "DirectoryServiceAvailable = " + objShellApp.GetSystemInformation("DirectoryServiceAvailable") + '\n'+
               "ProcessorLevel = " + objShellApp.GetSystemInformation("ProcessorLevel") + '\n'+
               "ProcessorArchitecture = " + objShellApp.GetSystemInformation("ProcessorArchitecture") + '\n'+
               "PhysicalMemoryInstalled = " + objShellApp.GetSystemInformation("PhysicalMemoryInstalled")  + '\n'+
               "IsOS_DomainMember = " + objShellApp.GetSystemInformation("IsOS_DomainMember") );

Help()

Метод Help() вызов справки Windows. Возвращаемого значения нет.

Синтаксис

objShellApp.Help ()

Параметры

Нет

Комментарии

Вызов метода приводит к тому же эффекту, что и команда меню "Пуск"-"Справка и поддержка" ("Start"-"Help and Support").

Пример

var objShellApp = WScript.CreateObject("Shell.Application");
objShellApp.Help ();

IsRestricted()

Метод IsRestricted() возвращает значение заданного ограничения по данным реестра (возвращаемое значение - число).

Синтаксис

objShellApp.IsRestricted( sGroup, sRestriction )

Параметры

sGroup
Строка, которая содержит имя раздела реестра, где производится поиск ограничений.
sRestriction
Строка, которая содержит имя параметра раздела реестра, где производится поиск ограничений.

Комментарии

IsRestricted сначала ищет названия раздела, который соответствует sGroup в следующем разделе: HKEY_LOCAL_MACHINE Software Microsoft Windows CurrentVersion Policies.

Если sRestriction находится в подразделе с именем sGroup, IsRestricted возвращает текущее значение ограничение. Если ограничение не найдено в разделе HKEY_LOCAL_MACHINE, то том же подразделе проверяется в разделе HKEY_CURRENT_USER.

Пример

var objShellApp = WScript.CreateObject("Shell.Application");
WScript.Echo ( objShellApp.IsRestricted("system", "dontdisplaylastusername") );

IsServiceRunning()

Метод IsServiceRunning() определяет, запущен ли указанный сервис. Возвращаемое значение - булево (число).

Синтаксис

objShellApp.IsServiceRunning( ServiceName )

Параметры

ServiceName
Строка, имя сервиса.

Пример

var objShellApp = WScript.CreateObject("Shell.Application");
ServiceName = "haspnt"
if ( objShellApp.IsServiceRunning(ServiceName) )
    WScript.Echo ( "Сервис " + ServiceName + " запущен!" );
else
    WScript.Echo ( "Сервис " + ServiceName + " НЕ запущен!" );

MinimizeAll()

Метод MinimizeAll() сворачивает все окна рабочего стола Windows. Возвращаемого значения нет.

Синтаксис

objShellApp.MinimizeAll ()

Параметры

Нет

Комментарии

Вызов метода приводит к тому же эффекту, что и команда "Показать рабочий стол" ("Minimize All Windows") контекстного меню панели задач Windows или щелчок по значку "Свернуть все окна" ("Show Desktop") на панели "Быстрый запуск" ("Quick Launch") панели задач Windows.

Пример

var objShellApp = WScript.CreateObject("Shell.Application");
objShellApp.MinimizeAll ();

NameSpace()

Метод NameSpace() получает объект виртуальной папки проводника. Возвращает объект Folder.

Синтаксис

objShellApp.NameSpace( Path )

Параметры

Path
Путь к папке или диску. Тип - строка.

Комментарии

Path может быть числом, определяющим одну из специальных папок Windows.

Пример №1:

var objShellApp = WScript.CreateObject("Shell.Application");
var objFolder = objShellApp.NameSpace(25);
WScript.Echo ( objShellApp.NameSpace("C:\\").Title + '\n'+objFolder.Self.Path );

Open()

Метод Open() запускает проводник Windows с определённой открытой папкой. Возвращаемого значения нет.

Синтаксис

objShellApp.Open( Path )

Параметры

Path
Путь к открываемой папке. Тип - строка.

Комментарии

Path может быть числом, определяющим одну из специальных папок Windows.

Пример

var objShellApp = WScript.CreateObject("Shell.Application");
objShellApp.Open("C:\\")
objShellApp.Explore("C:\\") 'для сравнения

SearchCommand()

Метод SearchCommand() отображает панель службы поиска. Возвращаемого значения нет.

Синтаксис

SearchCommand ()

Параметры

Нет

Пример

var objShellApp = WScript.CreateObject("Shell.Application");
objShellApp.SearchCommand ();

ServiceStart()

Метод ServiceStart() запускает указанный сервис. Возвращаемое значение - булево (число) - определяет, успешно ли завершена операция.

Синтаксис

objShellApp.ServiceStart( ServiceName, Persistent )

Параметры

ServiceName
Строка, имя сервиса.
Persistent
Булево (число). Определяет, что сервис должен автоматически стартовать при старте системы. Если указана ложь, конфигурация сервиса не меняется.

Пример

var objShellApp = WScript.CreateObject("Shell.Application");
var Serv = "haspnt";
if ( objShellApp.ServiceStart(Serv, false) == 0 )
    WScript.Echo ( "НЕ удалось запустить сервис " + Serv + "!" );
else
    WScript.Echo ( "Сервис " + Serv + " успешно запущен!" );

ServiceStop()

Метод ServiceStop() останавливает указанный сервис. Возвращаемое значение - булево (число) - определяет, успешно ли завершена операция.

Синтаксис

objShellApp.ServiceStop( ServiceName, Persistent )

Параметры

ServiceName
Строка, имя сервиса.
Persistent
Булево (число). Определяет, что сервис должен автоматически стартовать при старте системы. Если указана ложь, конфигурация сервиса не меняется.

Пример

var objShellApp = WScript.CreateObject("Shell.Application");
var Serv = "haspnt";
if ( objShellApp.ServiceStop(Serv, false) == 0 )
    WScript.Echo ( "НЕ удалось остановить сервис " + Serv + "!" );
else
    WScript.Echo ( "Сервис " + Serv + " успешно остановлен!" );

SetTime()

Метод SetTime() вызывает окно настройки времени и даты. Возвращаемого значения нет.

Синтаксис

objShellApp.SetTime ()

Параметры

Нет

Пример

var objShellApp = WScript.CreateObject("Shell.Application");
objShellApp.SetTime ();

ShellExecute()

Метод ShellExecute() выполняет указанное действие над указанным файлом. Возвращаемого значения нет.

Синтаксис

objShellApp.ShellExecute( File, Arguments, Directory, Operation, Show )

Параметры

File
Строка. Имя файла.
Arguments
Строка (необязательный). Параметры для Operation.
Directory
Строка (необязательный). Путь к каталогу с указанным файлом. Если не указан, используется текущий каталог.
Operation
Строка (необязательный). Действие ("глагол"), которое необходимо выполнить. Если не указан, используется действие по умолчанию.

Параметр может принимать следующие значения:

  • edit - Запускает редактор и открывает документ для редактирования
  • find - Инициирует поиск, начиная с указанной директории
  • open - Запуск приложения. Если этот файл не исполняемый файл, то запускается связанное с ним приложение.
  • print - Печать файла.
  • properties - Отображение свойств объекта
Show
Число (необязательный). Рекомендуемое состояние окна при выполнении. Запускаемое приложение может проигнорировать этот параметр. Возможные значения:
  • 0 - скрытое окно.
  • 1 - нормальное окно.
  • 2 - минимизированное окно.
  • 3 - максимизированное окно.
  • 4 - запустить приложение с окном в том состоянии, в котором оно было последний раз. Текущее активное окно останется активным.
  • 5 - запустить приложение с окном в текущем состоянии.
  • 7 - минимизированное окно. Текущее активное окно останется активным.
  • 10 - состояние окна по умолчанию для приложения.

Пример

var objShellApp = WScript.CreateObject("Shell.Application");
objShellApp.ShellExecute ( "notepad.exe", "", "", "open", 1 );

ShowBrowserBar()

Метод ShowBrowserBar() открывает или закрывает указанную панель обозревателя. Возвращает true в случае успеха, и false в случае неудачи.

Синтаксис

objShellApp.ShowBrowserBar( CLSID, Show )

Параметры

CLSID
Строка. Идентификатор класса (CLSID) панели обозревателя. Некоторые возможные значения:
  • Favorites - {EFA24E61-B078-11d0-89E4-00C04FC9E26E}
  • Folders - {EFA24E64-B078-11d0-89E4-00C04FC9E26E}
  • History - {EFA24E62-B078-11d0-89E4-00C04FC9E26E}
  • Search - {30D02401-6A81-11d0-8274-00C04FD5AE38}
Show
Булево. true - показать, false - спрятать панель.

Комментарии

Метод доступен только в контексте HTML-документа.

Пример

<script language="JavaScript">
function fnShowBrowserBarJ()
  { var objShell = new ActiveXObject("shell.application");
    var bReturn;
        
    bReturn = objShell.ShowBrowserBar("{EFA24E61-B078-11d0-89E4-00C04FC9E26E}", true);
  }
</script>

ShutdownWindows()

Метод ShutdownWindows() вызывает окно выключения и перезагрузки компьютера. Возвращаемого значения нет.

Синтаксис

objShellApp.ShutdownWindows ()

Параметры

Нет

Комментарии

Вызов метода приводит к тому же эффекту, что и команда меню "Пуск"-"Завершение работы" ("Start"-"Shut Down").

Пример

var objShellApp = WScript.CreateObject("Shell.Application");
objShellApp.ShutdownWindows ();

TileHorizontally()

Метод TileHorizontally() упорядочивает окна рабочего стола Windows по горизонтали. Возвращаемого значения нет.

Синтаксис

objShellApp.TileHorizontally ()

Параметры

Нет

Комментарии

Вызов метода приводит к тому же эффекту, что и команда "Окна сверху вниз" ("Tile Windows Horizontally") контекстного меню панели задач Windows.

Пример

var objShellApp = WScript.CreateObject("Shell.Application");
objShellApp.TileHorizontally ();

TileVertically()

Метод TileVertically() упорядочивает окна рабочего стола Windows по вертикали. Возвращаемого значения нет.

Синтаксис

objShellApp.TileVertically ()

Параметры

Нет

Комментарии

Вызов метода приводит к тому же эффекту, что и команда "Окна слева направо" ("Tile Windows Vertically") контекстного меню панели задач Windows.

Пример

var objShellApp = WScript.CreateObject("Shell.Application");
objShellApp.TileVertically ();

ToggleDesktop

Метод ToggleDesktop сворачивает или разворачивает все окна на рабочем столе. Возвращаемого значения нет.

Синтаксис

objShellApp.ToggleDesktop ()

Параметры

Нет

Комментарии

Имитирует нажатие на значок "Свернуть все окна" в панели "Быстрый запуск" ("Quick launch").

Пример

var objShellApp = WScript.CreateObject("Shell.Application");
objShellApp.ToggleDesktop ();

TrayProperties()

Метод TrayProperties() вызывает окно свойств панели задач Windows. Возвращаемого значения нет.

Синтаксис

objShellApp.TrayProperties ()

Параметры

Нет

Комментарии

Вызов метода приводит к тому же эффекту, что и команда "Свойства" ("Properties") контекстного меню панели задач Windows.

Пример

var objShellApp = WScript.CreateObject("Shell.Application");
objShellApp.TrayProperties ();

UndoMinimizeAll()

Метод UndoMinimizeAll() восстановление всех свёрнутых окон рабочего стола Windows. Возвращаемого значения нет.

Синтаксис

objShellApp.UndoMinimizeAll ()

Параметры

Нет

Пример

var objShellApp = WScript.CreateObject("Shell.Application");
objShellApp.MinimizeAll ();
WScript.Sleep ( 500 )
objShellApp.UndoMinimizeAll ();

Windows()

Метод Windows() получение объекта ShellWindows.

Синтаксис

objShellApp.Windows ()

Параметры

Нет

Возвращаемое значение

Объект ShellWindows.

Пример

var objShellApp = WScript.CreateObject("Shell.Application");
var WinCol = objShellApp.Windows().Count;
WScript.Echo ( "В настоящий момент открыто окон Проводника - " + WinCol )

WindowsSecurity()

Метод WindowsSecurity() имитирует нажатие CTRL+ALT+DELETE при использовании соединения Microsoft Terminal Server. Возвращаемого значения нет.

Синтаксис

objShellApp.WindowsSecurity ()

Параметры

Нет

Пример

<script language="JScript">
function fnIShellDispatch4WindowsSecurityJ()
  {  var objShell = new ActiveXObject("shell.application");
     objShell.WindowsSecurity();
  }
</script>

Объект ShellWindows

Объект ShellWindows представляет коллекцию открытых окон оболочки (Shell).

Сюда входят как открытые окна проводника (Application Microsoft Internet Explorer), так и открытые окна Internet Explorer (Application Windows Internet Explorer).

К первому случаю относятся не только открытые окна проводника в файловой системе, но и специальные возможности (Панель управления, Мой компьютер...).

Во втором случае в список попадут закладки открытых окон браузера Internet Explorer.

Создание объекта.

var objShellWindows = objShellApp.Windows()

Свойство

Объект ShellWindows имеет одно свойство Count, которое возврвщает количество элементов коллекции:

// Свойство. Только чтение.

objShellWindows.Count

Метод item()

Метод item получает InternetExplorer объект, представляющий окно оболочки.

Синтаксис:
objShellWindows.item ( Index )
Параметры
Index
Индекс элемента. Значение должно быть как и следовало ожидать не меньше нуля и меньше Count Необязательный. При отсутствии параметра его значение по умолчанию ноль. Объект InternetExplorer имеет ряд полезных свойств. Вот некоторые из них:
СвойствоОписание
LocationNameПолучает путь или название ресурса, который в данный момент обрабатывается.
LocationURLПолучает URL ресурса, который в данный момент обрабатывается.
ApplicationОбъект, запущенный в данном окне.
PathПуть к объекту, запущенному в данном окне. Может отсутствовать в более новых версиях.

Метод _NewEnum()

Метод создает и возвращает новый объект ShellWindows, который является копией текущего ShellWindows.

Синтаксис:
objShellWindows._NewEnum ()

Пример

var objShell = new ActiveXObject("Shell.Application"); 
var objShellWindows, s=''; 
objShellWindows = objShell.Windows(); 
if (objShellWindows != null) 
  { var objIE; 
    for( var i=0; i < objShellWindows.Count; i++) 
      { objIE = objShellWindows.Item(i); 
        if (objIE != null) 
          s += "\n\nPath:\t\t" + objIE.path + 
               "\n LocationName:\t" + objIE.LocationName + 
               "\n LocationURL:\t"+objIE.LocationURL; 
      } 
  }

WScript.Echo (s);

ShellSpecialFolderConstants

ShellSpecialFolderConstants определяет уникальные константы, которые идентифицируют специальные папки независимо от типа операционной системы WINDOWS.

typedef enum  {
  ssfALTSTARTUP        = 0x1d,
  ssfAPPDATA           = 0x1a,
  ssfBITBUCKET         = 0x0a,
  ssfCOMMONALTSTARTUP  = 0x1e,
  ssfCOMMONAPPDATA     = 0x23,
  ssfCOMMONDESKTOPDIR  = 0x19,
  ssfCOMMONFAVORITES   = 0x1f,
  ssfCOMMONPROGRAMS    = 0x17,
  ssfCOMMONSTARTMENU   = 0x16,
  ssfCOMMONSTARTUP     = 0x18,
  ssfCONTROLS          = 0x03,
  ssfCOOKIES           = 0x21,
  ssfDESKTOP           = 0x00,
  ssfDESKTOPDIRECTORY  = 0x10,
  ssfDRIVES            = 0x11,
  ssfFAVORITES         = 0x06,
  ssfFONTS             = 0x14,
  ssfHISTORY           = 0x22,
  ssfINTERNETCACHE     = 0x20,
  ssfLOCALAPPDATA      = 0x1c,
  ssfMYPICTURES        = 0x27,
  ssfNETHOOD           = 0x13,
  ssfNETWORK           = 0x12,
  ssfPERSONAL          = 0x05,
  ssfPRINTERS          = 0x04,
  ssfPRINTHOOD         = 0x1b,
  ssfPROFILE           = 0x28,
  ssfPROGRAMFILES      = 0x26,
  ssfPROGRAMFILESx86   = 0x30,
  ssfPROGRAMS          = 0x02,
  ssfRECENT            = 0x08,
  ssfSENDTO            = 0x09,
  ssfSTARTMENU         = 0x0b,
  ssfSTARTUP           = 0x07,
  ssfSYSTEM            = 0x25,
  ssfSYSTEMx86         = 0x29,
  ssfTEMPLATES         = 0x15,
  ssfWINDOWS           = 0x24
} ShellSpecialFolderConstants;
КонстантаОписание
ssfALTSTARTUP
0x1D (29).
Каталог файловой системы, который соответствует не локализованной Startup program group
ssfAPPDATA
0x1a (26).
Каталог файловой системы, который служит в качестве общего хранилища для приложений. Типичный путь C:\Documents и Settings\имя пользователя\Application Data.
ssfBITBUCKET
0x0A (10).
Виртуальный каталог, который содержит объекты пользовательской корзины
ssfCOMMONALTSTARTUP
0x1E (30).
Каталог файловой системы, который соответствует Startup program group для всех пользователей
ssfCOMMONAPPDATA
0x23 (35).
Данные для приложений для всех пользователей.
Типичный путь C: \ Documents и Settings \ All Users \ Application Data.
ssfCOMMONDESKTOPDIR
0x19 (25).
Каталог файловой системы, содержащий файлы и папки, которые отображаются на рабочем столе для всех пользователей. Типичный путь C: \ Documents и Settings \ All Users \ Desktop. Действительно только для систем Windows NT.
ssfCOMMONFAVORITES
0x1F (31).
Каталог файловой системы, который служит в качестве общего хранилища для избранных URL, общих для всех пользователей. Действительно только для систем Windows NT.
ssfCOMMONPROGRAMS
0x17 (23).
Каталог файловой системы, который содержит каталоги для общих групп программ, которые появляются в меню Пуск для всех пользователей. Типичный путь C: \ Documents и Settings \ All Users \ Start Menu \ Programs. Действительно только для систем Windows NT.
ssfCOMMONSTARTMENU
0x16 (22).
Каталог файловой системы, который содержит каталоги для общих программ, которые появляются в меню Пуск для всех пользователей. Типичный путь C: \ Documents и Settings \ All Users \ Start Menu \. Действительно только для систем Windows NT.
ssfCOMMONSTARTUP
0x18 (24).
Каталог файловой системы, который содержит программы, которые находятся в папке Startup для всех пользователей. Типичный путь C: \ Documents и Settings \ All Users \ Microsoft \ Windows \ Start Menu \ Programs \ Startup. Действительно только для систем Windows NT.
ssfCONTROLS
0x03 (3).
Каталог, который содержит иконки для приложений Панели управления.
ssfCOOKIES
0x21 (33).
Каталог файловой системы, который служит в качестве общего хранилища для интернет-Cookies. Типичный путь C: \ Documents и Settings \ имя пользователя \ Application Data \ Microsoft \ Windows \ Cookies.
ssfDESKTOP
0x00 (0).
Windows Desktop-виртуальная папка
ssfDESKTOPDIRECTORY
0x10 (16).
Каталог файловой системы, используемое для физического хранения файловых объектов, которые отображаются на рабочем столе.
ssfDRIVES
0x11 (17).
Мой компьютер - виртуальная папка,
ssfFAVORITES
0x06 (6).
Каталог файловой системы, который служит в качестве общего хранилища для избранных URL-адресов пользователя.
ssfFONTS
0x14 (20).
Виртуальный каталог, который содержит установленные шрифты. Типичный путь C: \ Windows \ Fonts.
ssfHISTORY
0x22 (34).
Каталог файловой системы, который служит в качестве общего хранилища для элементов истории IE.
ssfINTERNETCACHE
0x20 (32).
Каталог файловой системы, который служит в качестве общего хранилища для временных файлов Интернета для IE.
ssfLOCALAPPDATA
0x1c (28).
Каталог файловой системы, который служит в качестве хранилища данных для локальных приложений. Типичный путь C: \ Users \ имя пользователя \ AppData \ Local.
ssfMYPICTURES
0x27 (39).
Папка My PICTURES.
ssfNETHOOD
0x13 (19).
Папка файловой системы, который содержит объекты ссылок в My Network Places.
ssfNETWORK
0x12 (18).
Сетевое окружение-виртуальная папка, которая представляет корень иерархии сети.
ssfPERSONAL
0x05 (5).
Каталог файловой системы, который служит в качестве общего хранилища для документов пользователя.
ssfPRINTERS
0x04 (4).
Виртуальный каталог, который содержит установленные принтеры.
ssfPRINTHOOD
0x1b (27).
Папка профиля пользователя.
ssfPROFILE
0x28 (40).
Папка профиля пользователя.
ssfPROGRAMFILES
0x26 (38).
Папка Program Files.
ssfPROGRAMFILESx86
0x30 (48).
Папка Program Files. Для 32-рязрядных приложений. Типичный путь C: \ Program Files или C: \ Program Files (x86) на 64-разрядном компьютере.
ssfPROGRAMS
0x02 (2).
Каталог файловой системы, который содержит группы программ пользователя Типичный путь C:\Users\username\AppData\Microsoft\Windows\Start Menu\Programs.
ssfRECENT
0x08 (8).
Каталог файловой системы, который содержит недавно использовавшиеся документы пользователя.
ssfSENDTO
0x09 (9).
Каталог файловой системы, который содержит Send To пункт меню.
ssfSTARTMENU
0x0B (11).
Каталог файловой системы, который содержит Start пункт меню.
ssfSTARTUP
0x07 (7).
Каталог файловой системы, который соответствует запускаемым программам, когда пользователь входит в систему.
ssfSYSTEM
0x25 (37).
Системная папка. Обычно это C:\Windows\System32 или
ssfSYSTEMx86
0x29 (41).
Системная папка. Обычно это C:\Windows\System32 или C:\Windows\Syswow32 на 64-разрядном компьютере.
ssfTEMPLATES
0x15 (21).
Каталог файловой системы, который служит в качестве общего хранилища для шаблонов документов.
ssfWINDOWS
0x24 (36).
Каталог ОС Windows. Это соответствует %Windir% или %SystemRoot% переменных окружения.

Следует отметить, что при написании сценариев необходимо использовать цифровые, а не мнемонические константы.

Пример

var objShell = new ActiveXObject("shell.application"); 
var objFolder; 
var ssfWINDOWS = 36;
objFolder = objShell.NameSpace(ssfWINDOWS); 
if (objFolder != null) 
  { WScript.Echo (objFolder.Title + '\n' + objFolder.Self.Path); }