KnigaRead.com/

Андрей Попов - Windows Script Host для Windows 2000/XP

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн Андрей Попов, "Windows Script Host для Windows 2000/XP" бесплатно, без регистрации.
Перейти на страницу:

WshNetwork = WScript.CreateObject("WScript.Network");

WshShell = WScript.CreateObject("WScript.Shell");

Для того чтобы подключить сетевой диск к устройству K:, нужно быть уверенным, что с этой буквой уже не связан сетевой диск (иначе произойдет ошибка). Поэтому предварительно отключается сетевой диск с помощью метода RemoveNetworkDrive:

WshNetwork.RemoveNetworkDrive(Drive);

(переменной Drive заранее было присвоено значение "K:"). При выполнении этой команды может произойти ошибка времени выполнения (например, диск K: не существует или возникла ошибка при отключении связанного с ним сетевого ресурса), поэтому вызов метода RemoveNetworkDrive помещается внутрь блока try конструкции try…catch языка JScript, которая позволяет обрабатывать такие ошибки:

try {

 //Отключаем сетевой диск

В WshNetwork.RemoveNetworkDrive(Drive);

} catch (e) { //Обрабатываем возможные ошибки

if (Рµ.number != 0) {

 //Выводим сообщение об ошибке

В IsError=true;

 Mess="Ошибка при отключении диска "+Drive + "nКод ошибки: "+

  е.number+"nОписание: " + е.description;

 WshShell.Popup(Mess, 0, "Отключение сетевого диска", vbCritical);

В }

}

Теперь в случае возникновения ошибки при работе метода RemoveNetworkDrive управление передастся внутрь блока catch, а в полях переменной-объекта е будет содержаться информация о произошедшей ошибке (е.number — числовой код ошибки, е.description — краткое описание ошибки); эта информация отображается в диалоговом окне (рис. 2.23).

Р РёСЃ. 2.23. Рнформация РѕР± ошибке, произошедшей РїСЂРё отключении РґРёСЃРєР° K:


Если же отключение диска K: прошло успешно, на экран выводится диалоговое окно с информацией об этом (рис. 2.24):

if (!IsError) { //Р’СЃРµ РІ РїРѕСЂСЏРґРєРµ

 Mess="Диск "+Drive+" отключен успешно";

 WshShell.Popup(Mess, 0, "Отключение сетевого диска", vbInformation);

}

Р РёСЃ. 2.24. Рнформация РѕР± успешном отключении РґРёСЃРєР° K:


Аналогичный блок try…catch используется и при подключении сетевого диска:

try {

 //Подключаем сетевой диск

В WshNetwork.MapNetworkDrive(Drive, NetPath);

} catch (e) {

 //Обрабатываем возможные ошибки

В if (e != 0) {

  //Выводим сообщение об ошибке

В В IsError=true;

  Mess="Ошибка при подключении диска " + Drive + " к " + NetPath+

   "nКод ошибки: "+е.number + "nОписание: "+е.description;

   WshShell.Popup(Mess, 0, "Подключение сетевого диска", vbCritical);

Если, например, пользователь, который подключает сетевой диск, не имеет соответствующих прав доступа к сетевому ресурсу, то на экран выведется диалоговое окно, изображенное на рис. 2.25.

Р РёСЃ. 2.25. Рнформация РѕР± ошибке, произошедшей РїСЂРё подключении РґРёСЃРєР° K:


Освобождение локального порта (метод RemovePrinterConnection), подключение сетевого принтера к этому порту (метод AddPrinterConnection) и обработка ошибок времени выполнения, которые могут возникнуть при этих действиях, производится в сценарии аналогичным образом.

Листинг 2.50. Отключение и подключение сетевых ресурсов (JScript)

/********************************************************************/

/* РРјСЏ: MapResources.jsВ В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В  */

/* Язык: JScript                                                    */

/* Описание: Отключение и подключение сетевых дисков и принтеров    */

/********************************************************************/

//Объявляем переменные

var WshNetwork,WshShell,Drive,NetPath,Port,NetPrinter,Mess,IsError;

//Рнициализируем константы для диалоговых РѕРєРѕРЅ

var vbCritical=16,vbInformation=64;

Drive="K:";      //Буква диска

//NetPath="\\RS_NT_Server\d";  //Сетевой путь для подключения диска

NetPath="\\RS_NT_Server\d";  //Сетевой путь для подключения диска

Port="LPT1";   //Название локального порта

//Сетевой путь для подключения принтера

NetPrinter="\\104_Stepankova\HP";

//Создаем объект WshNetwork

WshNetwork = WScript.CreateObject("WScript.Network");

//Создаем объект WshShell

WshShell = WScript.CreateObject("WScript.Shell");

/*************  Отключение сетевого диска  ***********************/

IsError=false;

try {

 //Отключаем сетевой диск

В WshNetwork.RemoveNetworkDrive(Drive);

} catch (e) {  //Обрабатываем возможные ошибки

В if (e != 0) {

  //Выводим сообщение об ошибке

В  IsError=true;

  Mess="Ошибка при отключении диска "+Drive+"nКод ошибки: "+

   e.number+"nОписание: "+e.description;

  WshShell.Popup(Mess,0,"Отключение сетевого диска",vbCritical);

В }

}

if (!IsError)В {

В //Р’СЃРµ РІ РїРѕСЂСЏРґРєРµ

 Mess="Диск "+Drive+" отключен успешно";

 WshShell.Popup(Mess,0,"Отключение сетевого диска",vbInformation);

}

/*************  Подключение сетевого диска  ***********************/

IsError=false;

try {

 //Подключаем сетевой диск

В WshNetwork.MapNetworkDrive(Drive,NetPath);

} catch (e) { //Обрабатываем возможные ошибки

В if (e != 0) {

  //Выводим сообщение об ошибке

В  IsError=true;

  Mess="Ошибка при подключении диска " + Drive + " к " + NetPath+

   "nКод ошибки: "+e.number+"nОписание: "+e.description;

  WshShell.Popup(Mess,0,"Подключение сетевого диска",vbCritical);

В }

}

if (!IsError)В {

В //Р’СЃРµ РІ РїРѕСЂСЏРґРєРµ

 Mess="Диск "+Drive+" успешно подключен к "+NetPath;

 WshShell.Popup(Mess,0,"Подключение сетевого диска",vbInformation);

}

/*************  Освобождение локального порта  ***********************/

IsError=false;

try {

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*