Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Особенностью синтаксиса данного метода является то, что при использовании всех параметров скобки ( ) опускаются.




Необязательные параметры:

intWindowStyle - стиль окна запускаемого приложения

bWaitOnReturn - может принимать значение true или false, указывающее, следует ли сценарию дожидаться окончания выполнения запущенного приложения. true - выполнение сценария приостанавливается до тех пор, пока не будет закрыто запущенное приложение. false - не дожидаться.

Значения, принимаемые параметром intWindowStyle:

 

Значение Описание
0 Запуск в скрытом виде
1 Обычный размер окна, если окно свернуто или развернуто на весь экран, то ему возвращается исходный вид и положение на экране
2 Запуск в свернутом виде
3 Развернутое на весь экран
4 Запуск в обычном размере, в неактивном состоянии (без фокуса)
8 Обычный размер в неактивном состоянии, но в фокусе остается запустившее приложение

Метод 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

Работа с ресурсами локальной сети

 

Работа с локальной сетью

При работе с локальной сетью наиболее часто решаются следующие задачи:

- организация общих сетевых ресурсов;

- подключение пользователей к ресурсам;

- организация резервного копирования с одного компьютера в сети на другой.

Для доступа к сетевым ресурсам используются сетевые путив следующем формате:

\\Имя_компьютера\Имя_ресурса[\Имя_папки\...\Имя_файла]

Например, на сервере с сетевым именем  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:

Свойство Описание
ComputerName Имя компьютера
UserDamain Домен
UserName Имя пользователя

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 с помощью Блокнота. Там будет примерно следующий текст:


[ScriptFile]

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. Выберите в таблице вариант заданий.

Создайте файлы сценариев, которые выполняю следующие операции:

  1. Выводит сведения о системе (см. таблицу).
№ варианта Сведения о системе
1 Операционная система, Директория Windows
2 Расширенные данные о процессоре, Поколение процессора
3 Заданные системные пути, директория Windows
4 Тип процессора, Операционная система
5 Количество процессоров на данном компьютере, Заданные системные пути
6 Диск на котором находится директория с операционной системой, Каталог по умолчанию для пользователей
7 Первый локальный диск, поколение процессора
8 Путь к файлу командной строки, папка для временных файлов
9 Тип процессора, заданные системные пути
10 Заданные системные пути, поколение процессора

 

  1. Запускает приложение (на Ваш выбор) из пункта меню Стандартные с заданными параметрами (см. таблицу).
№ варианта Стиль окна запускаемого приложения Дожидаться окончания запущенного приложения
1 Обычный размер в неактивном состоянии, но в фокусе остается запустившее приложение Да
2 Развернутое на весь экран Да
3 Запуск в скрытом виде Нет
4 Запуск в свернутом виде Нет
5 Запуск в скрытом виде Да
6 Развернутое на весь экран Да
7 Запуск в обычном размере (без фокуса) Нет
8 Развернутое на весь экран Да
9 Запуск в скрытом виде Нет
10 Развернутое на весь экран Да

 

  1. Выводит сведения о путях ко всем специальным системным папкам, информацию о их количестве на данном компьютере. Использовать цикл для работы с семейством WshShell.SpecialFolders.
  2. Создает ярлык для какого-либо приложения, разместив его в заданной папке, с заданным стилем окна (см. таблицу). Установить горячие клавиши, иконку, всплывающую подсказку. В качестве рабочего каталога задать каталог \Temp, для определения точного пути к нему использовать переменную среды %Temp%.
№ варианта Папка для размещения ярлыка Стиль окна
1 Рабочий стол На весь экран
2 Избранное Свернутое
3 Мои документы На весь экран
4 Избранное Обычное
5 Рабочий стол Свернутое
6 Мои документы Обычное
7 Избранное Свернутое
8 Рабочий стол На весь экран
9 Мои документы На весь экран
10 Избранное Свернутое

 

  1. Создает ярлык для Web-узла, разместив его произвольной папке.
  2. Выводит информацию о локальном компьютере, на котором работает студент (имя пользователя и имя компьютера.).
  3. Выводит наименования подключенных сетевых дисков и их количество.
  4. Выводит сведения о сетевых принтерах и их количество. Если сетевых принтеров несколько, запросить у пользователя, какой из них следует сделать используемым по умолчанию.
  5. Выполняет попытку подключения сетевого диска с заданным пользователем именем и параметрами. Если подключение прошло успешно, перед завершением работы сценария предложить отключить сетевой диск. Организовать обработку исключительных ситуаций (невозможность подключения и отключения диска).

 










Последнее изменение этой страницы: 2018-04-12; просмотров: 285.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...