Объект WshShell используется для управления запущенными программами, работы с реестром, создания ярлыков , доступа к системным папкам, чтения переменных среды и т.д.
Свойства объекта WshShell
CurrentDirectory Возвращает полный путь до текущего каталога.
Environment(<ВидСобытия>)Возвращает объект типа WshEnvironment, содержащий список текущих переменных среды.
Параметры:
<ВидСобытия> - вид событий, список которых хотим получить. Возможные значения: System, User, Volatile или Process. Не обязателен. Если не указан, то возвращаются все виды событий.
Примечание:
Для Windows 95/98/Me возможно использовать только вид события Process.
SpecialFolders(<ТипПапки>) Возвращает либо объект типа WshSpecialFolders (если параметр <ТипПапки> не указан), либо путь до указанной системной папки (если параметр <ТипПапки> заполнен). В случае отсутствия такой папки в системе, возвращает пустую строку.
Параметры:
<ТипПапки> - строка, содержащая обозначение системной папки. Возможные значения смотри в описании переменных к объекту WshSpecialFolders.
Методы объекта WshShell
AppActivate(<ЗаголовкаОкна>) Активизирует окно программы, заголовок которого содержит указанную строку.
Поиск по заголовкам производится в следующем порядке: сначала ищется заголовок с полным соответствием названия, затем ищется заголовок, имя которого начинается на заданную строку, и затем ищется заголовок, название которого заканчивается на указаную строку. Если под шаблон подходит несколько окон, тогда активизируется первое найденое. При этом абсолютно безразлично свернуто это окно или нет. В случае, если окно свернуто, то активизируется Панель задач Windows и прямоугольник этого окна выделяется синим цветом.
Параметры:
<ЗаголовкаОкна> - строка, содержащая название окна, которое надо активизировать.
CreateShortcut(<Путь>) Возвращает объект типа WshShortcut или WshURLShortcut для работы с ярлыком. Конкретный тип объекта зависит от указанного расширения ярлыка ("url" или "lnk"). Данный метод не создает ярлык, он только указывает в каком месте он будет создан. Для указания остальных параметров ярлыка и его фактического создания необходимо использовать свойства и методы возвращаемого объекта.
Параметры:
<Путь> - строка, содержащая путь и имя ярлыка, который создаем.
Exec(<Путь>) Запускает на выполнение программу или скрипт. Возвращает объект типа WshScriptExec. Пример:
WshShell = Новый COMОбъект("WScript.Shell");
Процесс = WshShell.Exec("C:\Progra~1\Window~1\Access~1\wordpad.exe");
Рез = WshShell.AppActivate(Процесс.ProcessID);
ExpandEnvironmentStrings(<>) Возвращает расшифровку некоторых переменных среды. Метод предназначен для переменных среды имеющих вид: %Переменная%. Например: %WinDir%, %SystemRoot%, %USERPROFILE% и т.п.
Пример:
WshShell = Новый COMОбъект("WScript.Shell");
Сообщить(WshShell.ExpandEnvironmentStrings("%WinDir%"));
LogEvent(<ТипЗаписи>, <ТекстЗаписи>, <ИмяКомпьютера>) Добавляет запись в системный журнал.
Параметры:
<ТипЗаписи> - число, содержащее тип записи системного журнала. Возможные значения: 0 - SUCCESS; 1 - ERROR; 2 - WARNING; 4 - INFORMATION; 8 - AUDIT_SUCCESS; 16 - AUDIT_FAILURE.
<ТекстЗаписи> - строка, содержащая сообщение, записываемое в системный журнал.
<ИмяКомпьютера> - строка, содержащая имя компьютера, на котором производилась запись в системный журнал. Не обязателен. По умолчанию берется текущее имя компьютера. Только для Windows NT/2000.
Popup(<ТекстСообщения>, <ВремяЗадержки>, <ТексЗаголовка>, <КнопкаИконка>) Выводит в окне текстовое сообщение. Возвращает код нажатой кнопки. Возможные значения: -1 - таймаут; 1 - OK; 2 - Cancel; 3 - Abort; 4 - Retry; 5 - Ignore; 6 - Yes; 7 - No;
Метод объединяет в себе функционал стандартных методов 1С Предупреждение() и Вопрос().
Параметры:
<ТекстСообщения> - строка, содержащая текст сообщения.
<ВремяЗадержки> - число секунд, в течении которых будет показано окно. Не обязателен. По умолчанию равен 0 и время показа окна не лимитируется.
<ТексЗаголовка> - текст заголовка окна. Не обязателен. По умолчанию: ''Windows Script Host.''
<КнопкаИконка> - число, содержащее код сочетания кнопок и иконки.
Возможные значения сочетания кнопок:
0 - OK; 1 - OK+Cancel; 2 - Abort+Retry+Ignore; 3 - Yes+No+Cancel; 4 - Yes+No; 5 - Retry+Cancel;
Возможные коды иконок:
16 - ''Stop Mark''; 32 - ''Question Mark''; 48 - ''Exclamation Mark''; 64 - ''Information Mark''.
Значение параметра формируется путем сложения кода сочетания кнопок и кода иконки. Не обязателен. По умолчанию 0.
Примечание:
Данный метод имеет пакостную особенность: при закрытии окошка, происходит активизация предыдущего окна, т.е. не окна 1С. Поэтому данный метод нужно использовать совместно с методом AppActivate(). Список кодов кнопок и кодов информационных иконок - не полный. Полный можно посмотреть в документации к Microsoft Win32.
RegDelete(<ПутьВРеестре>) Удаляет указанный ключ или группу в системном реестре.
Параметры:
<ПутьВРеестре> - путь до ключа/группы в системном реестре. Если путь заканчивается символом ''\'', то происходит удаление группы, при этом группа должна быть пустой, иначе метод вызовет ошибку.
Для некоторых корневых групп название можно указывать в сокращенном варианте:
HKEY_CURRENT_USER - HKCU;
HKEY_LOCAL_MACHINE - HKLM;
HKEY_CLASSES_ROOT - HKCR.
Пример:
WshShell = Новый COMОбъект("WScript.Shell");
WshShell.RegDelete("HKCU\Software\ACME\FortuneTeller\MindReader");
RegRead(<ПутьДоКлюча>) Читает значение указанного ключа или значение по умолчанию для группы из реестра.
Возможные типы возвращаемых зачений:
REG_SZ - строка.
REG_DWORD - целое число.
REG_BINARY - массив целый чисел
REG_EXPAND_SZ - строка.
REG_MULTI_SZ - массив строк.
Типы REG_BINARY и REG_MULTI_SZ 1С не поддерживаются.
Параметры:
<ПутьДоКлюча> - строка, содержащая путь до ключа. Если путь заканчивается символом ''\'', то происходит чтение значения по умолчанию для группы.
Для некоторых корневых групп название можно указывать в сокращенном варианте:
HKEY_CURRENT_USER - HKCU;
HKEY_LOCAL_MACHINE - HKLM;
HKEY_CLASSES_ROOT - HKCR.
Пример:
WshShell = Новый COMОбъект("WScript.Shell");
Значение = WshShell.RegRead("HKCU\Software\ACME\");
RegWrite(<Путь>, <Значение>, <Тип>)Создает в системном реестре ключ с указанным значением или группу со значением по умолчанию. Если такой ключ уже существует, то устанавливает у него новое значение.
Параметры:
<Путь> - строка, содержащая путь, создаваемого ключа/группы. Если путь заканчивается символом ''\'', то создается группа. При создании ключа несуществующие группы создаются автоматически, а при создании группы - нет. Попытка создать группу в несуществующей группе приведет к ошибке.
Для некоторых корневых групп название можно указывать в сокращенном варианте:
HKEY_CURRENT_USER - HKCU;
HKEY_LOCAL_MACHINE - HKLM;
HKEY_CLASSES_ROOT - HKCR.
<Значение> - значение, которое необходимо присвоить ключу.
<Тип> - тип значения ключа в системном реестре. Не обязателен. Но если сильно хочется, то можно указать. Возможная конвертация типов:
Строка --> REG_SZ
Строка --> REG_EXPAND_SZ
Число --> REG_DWORD
Пример:
WshShell = Новый COMОбъект("WScript.Shell");
WshShell.RegWrite("HKCU\Software\ACME\", "Проверка", "REG_SZ");
Run(<Команда>, <ТипОкна>, <ЖдатьВозврата>) Выполняет команду. Основным достоинством является наличие ожидания окончания работы выполняемой команды.
Параметры:
<Команда> - выполняемая команда. Задается в формате DOS и длинные имена не поддерживает.
<ТипОкна> - число, в котором указывается вариант показа окна, запускаемого приложения. Не обязателен. Возможные значения:
0 - Скрывает окно и активирует другое;
1 - Активизирует и показывает окно. Если окно минимизировано или максимизировано, система восстанавливает его к оригинальному размеру и положению. Используется при первом открытии окна программы.
2 - Активизирует окно в свернутом режиме.
3 - Активизирует окно и разворачивает на весь экран.
4 - Показывает окно в его новом размере и положении. Активным остается текущее окно.
5 - Активизирует окно и показывает его в текущем размере.
6 - Минимизирует окно и активизирует следующее на панеле задач.
7 - Показывает окно как минимизированное. Активное окно остается активным.
8 - Показывает окно в его текущем состоянии. Активное окно остается активным.
9 - Активизирует и показывает окно. Если окно минимизировано или максимизировано, система восстанавливает его к оригинальному размеру и положению. Используется для восстановления минимизированного окна.
10 - показывает окно в том-же состоянии, что и окно вызывающей программы.
<ЖдатьВозврата> - флаг ожидания завершения процесса. Возможные значения: 0 - не ждать окончания выполнения команды; -1 - ждать окончания выполнения команды. Не обязателен. По умолчанию 0.
Замечание: Запускать можно как приложение, так и любую команду (аналогично Пуск->Выполнить).
Пример:
WshShell = Новый COMОбъект("WScript.Shell");
WshShell.Run("notepad",7,-1);
SendKeys(<Шаблон>) Эмулирует нажатие клавиш на клавиатуре.
Параметры:
<Шаблон> - строка, содержащая клавишу(ши), которую нажимаем. Можно указывать несколько клавиш подряд.
[необходимо зарегистрироваться для просмотра ссылки]