Особенностью синтаксиса данного метода является то, что при использовании всех параметров скобки ( ) опускаются.
Необязательные параметры:
intWindowStyle - стиль окна запускаемого приложения
bWaitOnReturn - может принимать значение true или false, указывающее, следует ли сценарию дожидаться окончания выполнения запущенного приложения. true - выполнение сценария приостанавливается до тех пор, пока не будет закрыто запущенное приложение. false - не дожидаться.
Значения, принимаемые параметром intWindowStyle:
Значение | Описание |
Запуск в скрытом виде | |
Обычный размер окна, если окно свернуто или развернуто на весь экран, то ему возвращается исходный вид и положение на экране | |
Запуск в свернутом виде | |
Развернутое на весь экран | |
Запуск в обычном размере, в неактивном состоянии (без фокуса) | |
Обычный размер в неактивном состоянии, но в фокусе остается запустившее приложение |
Метод Run не может вызвать приложение, если оно расположено в папке, путь к которой содержит пробелы. В этом случае путь надо заключить в тройные кавычки.
В качестве примера, с помощью метода Run запустим программу Блокнот, с загруженным вызывающим сценарием.
Dim WshShell
'Создаем объект WshShell:
Set WshShell = WScript.CreateObject("WScript.Shell")
'Вызываем Блокнот и добавляем к нему в качестве параметра
'путь исполняемого сценария:
WshShell.Run ("%windir%\notepad " & WScript.ScriptFullName)
Специальные папки 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 "Адрес рабочего стола: " + DesktopPath
Создание ярлыков
Для создания ярлыков используется метод 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