Подобие WithEvents в VBScript всё таки возможно !

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2054
Зарегистрирован: 25.11.2002 (Пн) 20:03

Подобие WithEvents в VBScript всё таки возможно !

Сообщение ALX_2002 » 25.12.2007 (Вт) 17:28

Я думаю многие как и я давно смирились с тем, что vbscript не поддерживает работу с событиями объектов.
Как выясняется кривовато, но поддерживает.

Сегодня наткнулся на статью. Решил поделиться с общестенностью. :roll:

http://www.script-coding.info/WSH/WScript.html#3.4.

Вобще конечно хорошо бы сделать раздел для VBScript. Там можно было бы много чего выложить :) :roll:

Пример обработки событий обычного InternetExplorer.Application.

Для проверки:
1) Копируем в файл IE.vbs и запускаем.
2) Пробуем перейти на любую страницу
3) Закрываем IE

Код: Выделить всё

'/// Создаём экземпляр нового класса
Set InternetExplorer = New InternetExplorerClass

'/// Делаем IE видимым
InternetExplorer.Application.Visible = True

'// Описываем события

Sub InternetExplorer_DocumentComplete(pDisp, URL)
   MsgBox "Загрузка " & URL & " завершена.",vbInformation,"Internet Explorer"
End Sub

Sub InternetExplorer_OnQuit()
   MsgBox "Вы закрыли Internet Explorer",vbInformation,"Internet Explorer"
   Wscript.Quit
End Sub

'/// Класс модуль InternetExplorer
Class InternetExplorerClass
   Public Application

   Private Sub Class_Initialize
      '/// Вся идея в создании объекта через WScript. Вторым параметром указывается префикс функций-обработчиков событий
      Set Application = Wscript.CreateObject("InternetExplorer.Application","InternetExplorer_")
   End Sub

   Sub Class_Terminate
      '/// Для того чтобы WScript не завершил выполнение сценария при попытке уничтожить модуль делаем цикл, который завершается если объект IE перестал существовать.
      On Error Resume Next
      Do
         WScript.Sleep 10
      Loop Until Application = ""
   End Sub
End Class
Последний раз редактировалось ALX_2002 25.12.2007 (Вт) 17:56, всего редактировалось 1 раз.

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: WithEvents в VBScript всё таки возможно !

Сообщение jangle » 25.12.2007 (Вт) 17:32

ALX_2002 писал(а):Я думаю многие как и я давно смирились с тем, что vbscript не поддерживает работу с событиями объектов.
Как выясняется кривовато, но поддерживает.


Это типичный секрет Полишинеля! :) Когда что-то неизвестное автору, на самом деле, уже давно известно всем окружающим :wink:

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2054
Зарегистрирован: 25.11.2002 (Пн) 20:03

Re: WithEvents в VBScript всё таки возможно !

Сообщение ALX_2002 » 25.12.2007 (Вт) 17:39

jangle писал(а):
ALX_2002 писал(а):Я думаю многие как и я давно смирились с тем, что vbscript не поддерживает работу с событиями объектов.
Как выясняется кривовато, но поддерживает.


Это типичный секрет Полишинеля! :) Когда что-то неизвестное автору, на самом деле, уже давно известно всем окружающим :wink:


Ожидал такого камента. :) Как ни странно 90% людей, опрошенных мной - сказали, что в VBSCRIPT поймать событие невозможно. (Наверное не тех спрашивал). Понятное дело, что есть мегамозги, которые давно про это знают. :)
Решил выложить инфу для таких же "чайникоподобных" как я :)

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Сообщение jangle » 25.12.2007 (Вт) 17:50

Ожидал такого камента. Как ни странно 90% людей, опрошенных мной - сказали, что в VBSCRIPT поймать событие невозможно. (Наверное не тех спрашивал). Понятное дело, что есть мегамозги, которые давно про это знают


Чтобы читать хелп, с описанием VBSCRIPT, мегамозги не нужны. А большинство пользователей, документацией брезгует..

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2054
Зарегистрирован: 25.11.2002 (Пн) 20:03

Сообщение ALX_2002 » 25.12.2007 (Вт) 17:53

jangle писал(а):Чтобы читать хелп, с описанием VBSCRIPT, мегамозги не нужны. А большинство пользователей, документацией брезгует..


Ну будем надеяться это большинство пользователей, зайдя на сайт, хотя бы поиском найдут эту тему. :wink: :roll:


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 75

    TopList