Как подключить VBScript_Global.GlobalObj ? :( Требует Set

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

Как подключить VBScript_Global.GlobalObj ? :( Требует Set

Сообщение ALX_2002 » 05.09.2005 (Пн) 14:13

Уважаемые Господа- Хочу в проге подрубить интерпритатор VBSCRIPT-а.

Пишу так

Код: Выделить всё
Dim vbs As VBScript_Global.GlobalObj

vbs.Execute "msgbox '1'"





Не разрешает :(

Говорит VARIABLE NOT SET. Как её засетить то Set VBS= ?

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

Сообщение ALX_2002 » 05.09.2005 (Пн) 15:25

Отцы, ну там же как то просто было. Ведь подрубалась эта VBSCRIPT.DLL - ка очень просто ???
:(

Ну посоветуйте плз ?

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 05.09.2005 (Пн) 15:37

может ты это имел ввиду :?:
Microsoft Script Host Object Model (wshom.ocx) - ставь в референсы

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

Сообщение ALX_2002 » 05.09.2005 (Пн) 15:45

2 Konst_One & respect : Нее.. Это не совсем то.

Трабл следующий

Мне нужно подрубить именно интерпритатор VBSCRIPT-а в ACTIVEX.

Зачем - ?

Чтобы в ACTIVEX можно было выполнять код и обращаться к объектам на страничке ( Document,Window).

:( Вот такая вот бодяга.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 05.09.2005 (Пн) 15:52

Reference=*\G{420B2830-E718-11CF-893D-00A0C9054228}#1.0#0#E:\WINNT\System32\scrrun.dll#Microsoft Scripting Runtime
Reference=*\G{0E59F1D2-1FBE-11D0-8FF2-00A0D10038BC}#1.0#0#E:\WINNT\System32\MSSCRIPT.OCX#Microsoft Script Control 1.0
Reference=*\G{F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}#1.0#0#E:\WINNT\System32\wshom.ocx#Windows Script Host Object Model (Ver 1.0)
Object={0E59F1D2-1FBE-11D0-8FF2-00A0D10038BC}#1.0#0; MSSCRIPT.OCX

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 05.09.2005 (Пн) 15:58

Код: Выделить всё
Dim mScript As ScriptControl
Dim Rs as ADODB.Recordset

...

    Set mScript = New ScriptControl
    mScript.Language = "VBScript"
    mScript.AllowUI = False
    mScript.Timeout = 0
    mScript.AddObject "Rs", Rs

...

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 05.09.2005 (Пн) 16:04

ALX_2002 писал(а):Зачем - ?

Чтобы в ACTIVEX можно было выполнять код и обращаться к объектам на страничке ( Document,Window).

Нереально, если ссылки на эти объекты не передавать из скрипта на самой странице.
А если передавать, то и VBScript не нужен.
В общем, тупиковая у тебя идея.
Изображение

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

Сообщение ALX_2002 » 05.09.2005 (Пн) 16:14

2 Tyomitch & Konst_One:

1) На счёт ссылок на объекты.

Они есть.

2) Мне нужно например выполнить window.navigate ("www.mail.ru") из ACTIVEX.

Как посоветуете это выполнить, если активные скрипты отрублены ? :(

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 05.09.2005 (Пн) 16:28

2) ничего не понял! какой активикс и какая-такая страница.
У тебя свой контрол встроен в страницу HTML и ты открываешь эту страницу с web-сервера? или как?

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

Сообщение ALX_2002 » 05.09.2005 (Пн) 16:31

Виноват. Объяснил всё чёрти как. :oops: :oops:

Значит всё по порядку.

У меня есть самописный ACTIVEX.

Я кладу его на 1.htm

В той же 1.htm есть скрипт

Моя задача заставить ACTIVEX выполнить необходимую мне процедуру в скрипте.

На случай даже если активные сценарии отрублены.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 05.09.2005 (Пн) 16:39

а что должна делать эта процедура на смой странице? может это можно реализовать по-другому?

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

Сообщение ALX_2002 » 05.09.2005 (Пн) 16:45

Вопрос понял. Моя задача сделать бизнес логику на странице.

Но проблема в том, что ДИКОСТЬ, но бывает - клиент разрешает использовать ACTIVEX, но отрубает активные сценарии.... Это жутко но и такое бывает :shock:

Я хотел предусмотреть такую ситуацию. Хотел подрубить в контроле VBSCRIPT DLL и в случае если клиент отрубил скрипты, выполнить их самому. вот. :(

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 05.09.2005 (Пн) 16:46

Такое ощущение, что автор просто забыл Set vbs = New VBScript_Global.GlobalObj
Лучший способ понять что-то самому — объяснить это другому.

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

Сообщение ALX_2002 » 05.09.2005 (Пн) 16:52

2 Antonariy: Хех.... Если бы так пахало, я бы не парился.... :roll:

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 05.09.2005 (Пн) 16:52

Хотел подрубить в контроле VBSCRIPT DLL и в случае если клиент отрубил скрипты, выполнить их самому. вот


Так я же уже тебе дал кусок референса и кода. вставляй контрол msscript в свой activex и выполняй , что тебе душе угодно :!:

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

Сообщение ALX_2002 » 05.09.2005 (Пн) 17:00

2 Konst_One: А как из него обратиться к процедуре скрипта ? :shock:

P.S Извини - торможу. :(

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 05.09.2005 (Пн) 17:08

создаешь модуль, добавляешь туда процедуру , вставляешь через AddCode, а потом просто вызываешь ее как обычную строчку через ExecuteStatement

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

Сообщение ALX_2002 » 05.09.2005 (Пн) 17:25

Тему усёк. Сейчас попробую. Пасиб :) :roll:

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 05.09.2005 (Пн) 17:28

Konst_One, не сработает, потому что объектов Document и Window внутри этого скрипт-котнрола не будет. Разве это не очевидно? :-?

ALX_2002, если скрипты будут отключены, то откуда же ты достанешь эти объекты?
Изображение

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 06.09.2005 (Вт) 10:42

все можно, просто нужно передать объект window через AddObject, и в скрипте он будет доступен (см. мой пример с рекордсетом)

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 06.09.2005 (Вт) 17:38

Konst_One, откуда он возьмёт этот объект, чтобы передать его через AddObject? :roll:
Изображение

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

Сообщение ALX_2002 » 07.09.2005 (Ср) 11:32

2 Tyomitch: Не пугай меня Тёмыч. :shock: :D . Тут вообще пробле нет


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


Set Doc = UserControl.Parent
Set Wnd = Doc.parentWindow



Document и Window получены :idea:

А дальше уже AddObject и нет НИКАКИХ проблем. :)

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 07.09.2005 (Ср) 16:46

все мы смертны, если внимательно приглядеться :cry:


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

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

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

    TopList