Microsoft Script Control

User avatar
Mike Korablin
Уже с Приветом
Posts: 177
Joined: 10 Apr 2003 01:15

Microsoft Script Control

Post by Mike Korablin »

Где можно почитать подробно по компонент? Описание всех интерфейсов классов.
blanko27
Уже с Приветом
Posts: 2264
Joined: 17 Jun 2003 04:41
Location: Just like US

Post by blanko27 »

Maybe here? http://msdn.microsoft.com/library/default.asp?url=/nhp/default.asp?contentid=28001169 Вас его хостинг интересует?
...а мы такой компанией, возьмем, да и припремся к Элис!
User avatar
Mike Korablin
Уже с Приветом
Posts: 177
Joined: 10 Apr 2003 01:15

Post by Mike Korablin »

Мне нужно было описание MSScriptControl.
Нечто похожее было найдено здесь:
http://www.microsoft.com/mind/0799/script/script.asp
User avatar
Mike Korablin
Уже с Приветом
Posts: 177
Joined: 10 Apr 2003 01:15

Post by Mike Korablin »

У меня новый вопрос: как можно обработать (читай выполнить) скрипт описанный в .wsf файле где-нибудь скажем в C#?

Сегодня весь день рыскаю в поисках ответа - ни одной зацепки. :pain1:

Нашел только IWshRuntimeLibrary, но ничего полезного там не заметил.
Для VBScript и JScript есть MSScriptControl.ScriptControl, а для этого зверя?
Michael Popov
Уже с Приветом
Posts: 991
Joined: 09 Sep 2001 09:01
Location: The Earth

Post by Michael Popov »

Mike Korablin wrote:У меня новый вопрос: как можно обработать (читай выполнить) скрипт описанный в .wsf файле где-нибудь скажем в C#?

Никак. C# вначале надо откомпилировать, а потом выполнять. C# не скриптовый язык.
Best regards,

Michael Popov
Oleg_B
Уже с Приветом
Posts: 5406
Joined: 16 Apr 1999 09:01
Location: MA

Post by Oleg_B »

Mike Korablin wrote:У меня новый вопрос: как можно обработать (читай выполнить) скрипт описанный в .wsf файле где-нибудь скажем в C#?

Сегодня весь день рыскаю в поисках ответа - ни одной зацепки. :pain1:

Нашел только IWshRuntimeLibrary, но ничего полезного там не заметил.
Для VBScript и JScript есть MSScriptControl.ScriptControl, а для этого зверя?


Так содать энтот скрипт контрол из шарпа, считать в него скрипт из файла, да и выполнить...
Oleg_B
Уже с Приветом
Posts: 5406
Joined: 16 Apr 1999 09:01
Location: MA

Post by Oleg_B »

Но это если по старинке делать. По-новому надо бы из шарпа создать компилятор скрипта, им файл откомпилировать во временную ассембли, да её-то и запустить. Понятно, что чистый скрипт ещё извлечь из файла надо сначала, убрав разметку всякую.
User avatar
Mike Korablin
Уже с Приветом
Posts: 177
Joined: 10 Apr 2003 01:15

Post by Mike Korablin »

Michael Popov wrote:Никак. C# вначале надо откомпилировать, а потом выполнять. C# не скриптовый язык.


Есть специальный COM control для того, чтобы выполнять скрипты в C#, C++, VB - где угодно.
User avatar
Mike Korablin
Уже с Приветом
Posts: 177
Joined: 10 Apr 2003 01:15

Post by Mike Korablin »

Oleg_B wrote:...надо бы из шарпа создать компилятор скрипта, им файл откомпилировать во временную ассембли, да её-то и запустить.


А как создать этот компилятор?

Понятно, что чистый скрипт ещё извлечь из файла надо сначала, убрав разметку всякую.


А нужно ли будет убирать разметку? CScript ее воспринимает. Тем более, что разметка-то как раз и важна. Там можно, например, включать внешние фаилы с дополнительным кодом. ScriptControl из MSScriptControl позволяет хранить модули, но не дает возможности перекрестного доступа к методам внутри.

Пока решение - это делать deserialization .wsf фаила и объединять все скрипты в один, который выполнять, отслеживая при ошибках относительные номера строк в каждом фаиле.

Есть какие-нибудь еще предложения?
Michael Popov
Уже с Приветом
Posts: 991
Joined: 09 Sep 2001 09:01
Location: The Earth

Post by Michael Popov »

Mike Korablin wrote:
Michael Popov wrote:Никак. C# вначале надо откомпилировать, а потом выполнять. C# не скриптовый язык.


Есть специальный COM control для того, чтобы выполнять скрипты в C#, C++, VB - где угодно.


Ссылкой не поделитесь ? Особенно на "COM control, чтобы выполнять скрипты в C++".
Best regards,

Michael Popov
User avatar
Mike Korablin
Уже с Приветом
Posts: 177
Joined: 10 Apr 2003 01:15

Post by Mike Korablin »

Вот ссылка на msdn: http://msdn.microsoft.com/library/default.asp?url=/nhp/default.asp?contentid=28001169
Думаю там все можно найти.

А так посмотрите MSScriptControl в google. То, что вам нужно это ScriptControlClass от туда. В онлайне много на эту тему всего. Если будут вопросы обращайтесь.
User avatar
Gennadiy
Уже с Приветом
Posts: 11332
Joined: 30 Mar 2000 10:01
Location: Ice Storm Town

Post by Gennadiy »

Mike Korablin wrote:Есть специальный COM control для того, чтобы выполнять скрипты в C#, C++, VB - где угодно.

А зачем нужен специальный контрол если это всего пяток строчек на C#.
Microsof.CSharp спасет отца русской демократии. Скрипт загружается, компилируется в память и затем выполняется.

Code: Select all

         CSharpCodeProvider cp = new CSharpCodeProvider();
         ICodeCompiler comp = cp.CreateCompiler();
         CompilerParameters param = new CompilerParameters();
         param.GenerateInMemory = true;
         param.GenerateExecutable = true;
         CompilerResults result = comp.CompileAssemblyFromFile(param, "Script.cs");
         if(result.Errors.Count == 0)
         {
            Assembly asm = result.CompiledAssembly;
            MethodInfo mi = asm.EntryPoint;
            mi.Invoke(null,  new object[]{new string[]{}});
         }
         else
         {
            // Error handling
         }
[/code]
blanko27
Уже с Приветом
Posts: 2264
Joined: 17 Jun 2003 04:41
Location: Just like US

Post by blanko27 »

Можно референс к тому контролу добавить, если ему так больше нравится. :pain1:
...а мы такой компанией, возьмем, да и припремся к Элис!
Michael Popov
Уже с Приветом
Posts: 991
Joined: 09 Sep 2001 09:01
Location: The Earth

Post by Michael Popov »

Mike Korablin wrote:Вот ссылка на msdn: http://msdn.microsoft.com/library/default.asp?url=/nhp/default.asp?contentid=28001169
Думаю там все можно найти.

А так посмотрите MSScriptControl в google. То, что вам нужно это ScriptControlClass от туда. В онлайне много на эту тему всего. Если будут вопросы обращайтесь.


Mike, Ваша ссылка указывает на sript control, который позволяет выполнять скрипты на JScript & VBScript. Есть еще engines, которые выполняют JavaScript, Python, Perl, TCL. Это все скриптовые языки.

C# and VB, и тем более C++ скриптовыми языками не являются (хотя где-то видел ссылки на попытки написать интерпретатор C++).
Best regards,

Michael Popov
User avatar
Strannik223
Уже с Приветом
Posts: 569
Joined: 14 Dec 2003 04:06
Location: Львов->Киев->Торонто

Post by Strannik223 »

Просто тут все запутались в термине что такое выполнить в с++: хостить в с++ или выполнить исходный код в с++.
MS ScriptControl умеет выполнять только JScript & VBScript. Хостится он в любой среде включая с# как обычный COM объект, никаких особенностей нет.
Никакой разрухи нет. (с) Проф. Преображенский.

Return to “Вопросы и новости IT”