Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Особенностью синтаксиса данного метода является то, что при использовании всех параметров скобки ( ) опускаются. ⇐ ПредыдущаяСтр 3 из 3
Необязательные параметры: 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 – специальная папка.
Кроме вышеперечисленных папок в 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 Работа с ресурсами локальной сети
Работа с локальной сетью При работе с локальной сетью наиболее часто решаются следующие задачи: - организация общих сетевых ресурсов; - подключение пользователей к ресурсам; - организация резервного копирования с одного компьютера в сети на другой. Для доступа к сетевым ресурсам используются сетевые путив следующем формате: \\Имя_компьютера\Имя_ресурса[\Имя_папки\...\Имя_файла] Например, на сервере с сетевым именем Server1 имеется общедоступный принтер с сетевым именем Epson, то путь к нему указывается так: \\Server1\Epson. Если на этом же компьютере имеется общедоступная папка Programs, то путь к ней выглядит как \\Server1\Programs, а путь к файлу в этой папке, например, так: \\Server1\Programs\Corel\Coreldrv.exe Для работы с сетевой папкой, расположенной на сервере Global, необходимо задать путь: \\Global\Имя_папки 1.1. Объект WshNetwork Объект WshNetwork используется для работы с сетью, установки конфигурации сетевого среды - а именно для управления сетевыми дисками и принтерами. Через объект WshNetwork можно получить информацию о локальном компьютере, подключаться к дискам и принтерам в сети, устанавливать принтер по умолчанию и отключаться от сетевых дисков и принтеров.
Для его использования объект нужно создать.
Set WshNetwork = CreateObject("WScript.Network") Для получения информации о компьютере, можно получить его сетевые атрибуты: имя пользователя, имя компьютера и его домен. Свойства объекта WshNetwork:
1.2. Сетевые диски Для работы с сетевыми дисками Windows Script Host предоставляет несколько методов, которые позволяют получать сведения о подключенных сетевых дисках, подключать сетевые диски и отключаться от них. У объекта WshNetworkимеется методыEnumNetworkDrives и EnumNetworkPrinterConnections,с помощью которых можно создать коллекции, содержащие сведения обо всех подключенных к локальной сети сетевых дисках и сетевых принтерах. Эти коллекции устроены следующим образом: первым элементом коллекции является буква диска или название порта, вторым – сетевое имя ресурса, с которым связан этот диск или принтер. Та же последовательность сохраняется для всех элементов коллекции.
EnumNetworkDrives - возвращает список подключенных сетевых дисков. Синтаксис: objDrives = object.EnumNetworkDrive где object - объект WshNetwork objDrives - переменная, которой присваивается ссылка на коллекцию сетевых дисков
Dim WshNetwork, Drives Set WshNetwork = WScript.CreateObject("WScript.Network") Set Drives = WshNetwork.EnumNetworkDrives WScript.Echo "Подключены сетевые диски: " For i = 0 to Drives.Count - 1 Step 2 WScript.Echo "Диски " & Drives.Item(i) & " = " & Drives.Item(i+1) Next MapNetworkDrive - назначает заданную букву сетевому диску. Синтаксис: WshNetwork.MapNetworkDrive strLocalName, strRemoteName, [bUpdateProfile], [strUser], [strPassword] где strLocalName - назначаемая буква сетевого диска strRemoteName - удаленное имя Необязательные параметры: bUpdateProfile - логическая величина определяющая сохранять ли сделанную настройку в пользовательской конфигурации. strUser, strPassword - вы можете указать имя и пароль для доступа к диску.
'создаем объект WshNetwork: Set WshNetwork = CreateObject("WScript.Network") 'назначаем сетевой ресурс Server\PublicFiles как сетевой диск Z: WshNetwork.MapNetworkDrive "Z:", "\\Server\PublicFiles"
RemoveNetworkDrive - отключает сетевой диск Синтаксис: WshNetwork.RemoveNetworkDrive strName, [bForce], [bUpdateProfile] где: strName - имя диска Необязательные параметры: bForce - логический параметр. Если принимает значение true, то сетевой диск отключается, даже если он в настоящий момент используется данным компьютером. bUpdateProfile - логический параметр, указывающий, сохранить ли сделанную настройку в пользовательском профиле. VBScript: 'создаем объект WshNetwork: Set WshNetwork = WScript.CreateObject("WScript.Network") 'подключаем сетевой диск Z: WshNetwork.MapNetworkDrive "Z:", "\\Server\PublicFiles" 'отключаем сетевой диск Z: WshNetwork.RemoveNetworkDrive "Z:"
При работе с сетевыми ресурсами могут возникать так называемые ошибки выполнения или исключения. Но это не те ошибки, когда вы забыли поставить закрывающую скобку, запятую или ошиблись в имени переменной. Это ошибки, возникающие в некоторых ситуациях во время выполнения сценария и зависящие от некоторых не регулярно возникающих обстоятельств. Например, для того, чтобы подключить сетевой диск к устройству Z: , нужно быть уверенным, что такая буква не использована ранее (иначе произойдет ошибка). Режим обработки исключительных ситуаций в VBScript включается с помощью оператора On Error Resume Next. Если после этого при выполнении какого-либо оператора в сценарии произойдет ошибка, то выполнение передастся следующему оператору в тексте. Для анализа ошибок используется объект Err. Это стандартный объект VBScript, содержащий информацию о так называемых run-time errors (ошибках времени выполнения). Свойство Source указывает на источник ошибки. Метод Clear очищает свойства объекта, удаляя сведения об ошибке. Помимо Source и Clear у объекта есть и другие свойства и методы, но реально может понадобиться, пожалуй, свойство Number и Description. Number возвращает код произошедшей ошибки, а Description ее описание. Для отмены режима обработки исключений служит оператор On Error Goto 0. Пример сценария с обработкой исключений : ' Создаем объект WshNetwork Set WshNetwork = WScript.CreateObject("WScript.Network") ' Создаем объект WshShell Set WshShell = WScript.CreateObject("WScript.Shell") ' Включаем обработку ошибок времени выполнения On Error Resume Next ' Отключаем сетевой диск WshNetwork.RemoveNetworkDrive "Z:" If Err.Number<>0 Then Info="Ошибка при отключении диска " & Drive & vbCrLf & _ "Код ошибки: " & err.number & vbCrLf &+ _ "Описание: " & err.description WshShell.Popup Info,0,"Отключение сетевого диска",vbCritical Else ' Все в порядке Info="Диск " & Drive & " отключен успешно" WshShell.Popup Info,0,"Отключение сетевого диска",vbInformation End If
Работа с принтерами Подобно работе с сетевыми дисками, WSH предоставляет для работы с сетевыми принтерами по сути те же методы. EnumPrinterConnections – возвращает список подключенных принтеров Синтаксис: objPrinters = object.EnumPrinterConnections где object - объект WshNetwork objPrinters - ссылка на коллекцию принтеров
AddPrinterConnection – подключает сетевой принтер. WshNetworkt.AddPrinterConnection strLocalName, strRemoteName [,bUpdateProfile [,strUser][,strPassword] где strLocalName – назначаемое подключенному принтеру имя strRemoteName - удаленное имя Необязательные параметры: bUpdateProfile - логическая величина (true или false),определяющая сохранять ли сделанную настройку в пользовательской конфигурации. strUser, strPassword - вы можете указать имя и пароль для доступа к диску.
Set WshNetwork = CreateObject("WScript.Network") WshNetwork.AddPrinterConnection "LPT1", “Server\\LaserJet1” RemovePrinterConnection – отключат сетевой принтер. Синтаксис: WshNetwork.RemovePrinterConnection strName, [bForce], [bUpdateProfile] где: strName - имя диска Необязательные параметры: bForce - логический параметр. Если принимает значение true, то сетевой принтер отключается, независимо от того, используется он в настоящий момент или нет. bUpdateProfile - логический параметр, указывающий, сохранить ли сделанную настройку в пользовательском профиле.
Set WshNetwork = CreateObject("WScript.Network") WshNetwork.RemovePrinterConnection "LPT1:" Кроме методов, подобных методам для работы с сетевыми дисками Windows Scripting Host для работы с принтерами предоставляет еще несколько. AddWindowsPrinterConnections – устанавливает новый принтер в Windows. Синтаксис: WshNetwork.AddWindowsPrinterConnection(strPrinterPath) где strPrinterPath - путь к принтеру
Set WshNetwork = CreateObject("WScript.Network") PrinterPath= "\\printserv\DefaultPrinter" WshNework.AddWindowsPrinterConnection(PrinterPath) SetDefaultPrinter – устанавливает принтер по умолчанию Синтаксис: object.SetDefaultPrinter strPrinterName где object - объкт WshNetwork strPrinterName - удаленное имя принтера
Set WshNetwork = WScript.CreateObject("WScript.Network") ‘создаем объект WshNetwork WshNetwork.AddPrinterConnection "LPT1:", “\\Server\\Prnt1” ‘подключаем к системе сетевой принтер WshNetwork.SetDefaultPrinter "LPT1:" ‘задаем его принтером по умолчанию
Практическое задание 3.1. Создайте с помощью Блокнота файл, выводящий сообщение. Например, введите текст: WScript.Echo "Это первый сценарий" 3.2. Сохраните файл с любым из допустимых расширений (vbs). 3.3. Запустите сценарий на выполнение в диалоговом режиме и режиме командной строки. 3.4. Задайте настройки для сценария, для чего выполните следующие действия. Щелкните на нем правой кнопкой мыши и в окне свойств файла выберите вкладку “Сценарий”. Измените настройки на этой вкладке, поставив или сняв любой флажок, чтобы кнопка “Вернуть установки по умолчанию” стала доступна. После этого щелкните OK. Появился файл с расширением wsh. 3.5. В дальнейшем, если необходимо использовать измененные настройки, нужно вместо файла с расширением .vbs запускать файл с расширением .wsh. 3.6. Откроем файл с расширением .wsh с помощью Блокнота. Там будет примерно следующий текст:
Path=C:\Мои документы\Пример1.VBS [Options] Timeout=10 DisplayLogo=1 Параметр Path в разделе [ScriptFile] содержит путь к файлу, для которого используется wsh-файл. Настройки в разделе [Options] – это сами настройки, ради которых, собственно и создан файл настройки. Timeout – определяет время отведенное для выполнения сценария. DisplayLogo – отвечает за вывод эмблемы Windows Script Host, при запуске в командном режиме. Если изменить его на 0, то эмблема отображаться не будет. BatchMode – включает/выключает пакетный режим. Если ему присвоить значение 1, то сценарий будет выполнятся в пакетном режиме – без вывода информации на экран и сообщений об ошибках. 3.7. Самостоятельно выполните приведенные в разделе 2 примеры. 3.8. Выберите в таблице вариант заданий. Создайте файлы сценариев, которые выполняю следующие операции:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2018-04-12; просмотров: 285. stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда... |