Как запустить сценарий VBscript из программы

Предыдущая тема Следующая тема Перейти вниз

Как запустить сценарий VBscript из программы

Сообщение  valdimir в Пн Фев 02, 2009 9:27 pm

Подскажите, как можно запустить сценарий VBscript из программы на FBasic? Если создать файл *.vbs , а затем запустить его с помощью команды SHELL, то кратковременно появляется окно DOS. Есть ли способ избежать этого явления?

valdimir

Сообщения : 44
Дата регистрации : 2008-10-11
Откуда : Калининградская обл.

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Как запустить сценарий VBscript из программы

Сообщение  Eric-S в Вт Фев 03, 2009 5:15 am

Ну... Если запускать через shell. Самый простой вариант.
То ведь есть две команды cscript и wscript.
Первая это консольная, а вторая оконная.
Попробуй запускать прямой командой.

И вообще, вот что я получил, набрав
cssript /?

Сервер сценариев Windows (Microsoft ®) версия 5.7
© Корпорация Майкрософт (Microsoft Corp.), 1996-2001. Все права защищены.

Использование: CScript имя_сценария.расширение [параметры...] [аргументы...]

Параметры:
//B Пакетный режим: подавляются отображение ошибок и запросов сценария
//D Включение режима Active Debugging
//E:ядро Использование указанного ядра для выполнения сценария
//H:CScript Стандартный сервер сценариев заменяется на CScript.exe
//H:WScript Стандартный сервер сценариев заменяется на WScript.exe (по умолчанию) //I Диалоговый режим (по умолчанию, в противоположность //B)
//Job:xxxx Выполнение указанного задания WSF
//Logo Отображать сведения о программе (по умолчанию)
//Nologo Не отображать сведения о программе во время выполнения
//S Сохранить для данного пользователя текущие параметры командной строки
//T:nn Интервал ожидания (в секундах): максимальное время выполнения сценария
//X Выполнение сценария в отладчике
//U Использование кодировки Юникод при перенаправлении ввода-вывода
с консоли

Это краткая справочка. В хелпе более подробно расписано.

Но есть и другой вариант. Подключить библиотеку сервера сценариев и запускать через неё.
Если не ошибаюсь, то есть такая vbscript.dll.
Но как её пользовать, уже точно не скажу. Может гугл знает.
При таком варианте ожидаеться более быстрый старт скрипта.

Наконец третий вариант. Можно скрипт запускать в браузере. Есть такой компонент webbrouse. D example есть пример как открывать окошко.
А вот что дальше опять не скажу. Видимо опять гугл.

Если разберёшься с библиотекой, то расскажи пожалуйста. Мне этот вопрос тоже интересен. Правда сейчас он для меня не актуален.

А да. Если искать, то вероятнее всего без разницы vbscript или jscript. Думаеться мне, что интерфейс у этих библиотек одинаковый. А второй вариант более популярен.

Eric-S

Сообщения : 738
Дата регистрации : 2008-08-06
Возраст : 34
Откуда : Россия, Санкт-Петербург

Посмотреть профиль http://eric50.narod.ru

Вернуться к началу Перейти вниз

Re: Как запустить сценарий VBscript из программы

Сообщение  valdimir в Вт Фев 03, 2009 4:08 pm

Спасибо за подсказку, этот вариант подошел:
Dim path As String
path=Environ("windir") & "\system32\"
Run (path & "wscript", "имя.vbs")

valdimir

Сообщения : 44
Дата регистрации : 2008-10-11
Откуда : Калининградская обл.

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Как запустить сценарий VBscript из программы

Сообщение  vbman в Вс Фев 15, 2009 4:09 pm

valdimir пишет:Подскажите, как можно запустить сценарий VBscript из программы на FBasic? Если создать файл *.vbs , а затем запустить его с помощью команды SHELL, то кратковременно появляется окно DOS. Есть ли способ избежать этого явления?

Не забывайте про АПИ ShellExecute!!! Sad Sad Sad
avatar
vbman

Сообщения : 52
Дата регистрации : 2008-11-19
Возраст : 35
Откуда : Украина, Кировоград

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Как запустить сценарий VBscript из программы

Сообщение  diakin в Пт Апр 10, 2009 12:17 pm

Можно посмотреть примеры с использованием disphelper
Что-то типа

Код:

#define FALSE 0
#define TRUE Not FALSE


'------------------- C:\BAS\RAPIDQ\RQIDE\FBRegExpVBS3.bas
#define UNICODE
#include "C:\BAS\FREEBASIC\FREEBASIC16\INC\disphelper\disphelper.bi"
'byval pResult as LPSTR, _

function RunScript ( byval szRetIdentifier as LPSTR, _
byval pResult as LPvoid, _
byval szScript as LPSTR, _
byval szLanguage as LPSTR ) as string Ptr export

static sResult as string

'Message$="Can't create MSScriptControl.ScriptControl"
'Message1$="Unknown script language"


DISPATCH_OBJ(wdApp)
DISPATCH_OBJ(scrCtl)


dhInitialize( TRUE )
dhToggleExceptions( TRUE )

if( SUCCEEDED( dhCreateObject( "MSScriptControl.ScriptControl", NULL, @scrCtl )  ) ) then
   if( SUCCEEDED( dhPutValue( scrCtl, ".Language = %s", szLanguage ) ) ) then
      dhPutValue(scrCtl, ".AllowUI = %b", TRUE)
      dhPutValue(scrCtl, ".UseSafeSubset = %b", FALSE)
      print 34
      
      if( pResult = FALSE ) then
         'dhCallMethod( scrCtl, ".Eval(%T)", szScript )
         dhCallMethod( scrCtl, ".Eval(%s)", szScript )
         'VBScript.AddCode(RichEdit.Text)
         'dhCallMethod( scrCtl, ".AddCode(%s)", szScript )
      else
         print 40
         dhGetValue( szRetIdentifier, pResult, scrCtl, ".Eval(%s)", szScript )
         'dhGetValue( *szRetIdentifier, pResult, scrCtl, ".AddCode(%s)", szScript )
         'dhGetValue( "%s", pResult, scrCtl, ".AddCode(%s)", szScript )
         'dhGetValue( "%v", pResult, scrCtl, ".Eval(%s)", szScript )
      end if
   else
  MessageBox 0, Message1$, "Error", MB_ICONERROR
   
   end if
else
  MessageBox 0, Message$, "Error", MB_ICONERROR

end if

SAFE_RELEASE(wdApp)'
dhUninitialize(TRUE)
'sResult=*pResult '"1234"
'return StrPtr(pResult)
return pResult

end function

diakin

Сообщения : 37
Дата регистрации : 2009-04-06
Откуда : С-Петербург

Посмотреть профиль http://miraxem.com

Вернуться к началу Перейти вниз

Re: Как запустить сценарий VBscript из программы

Сообщение  Спонсируемый контент


Спонсируемый контент


Вернуться к началу Перейти вниз

Предыдущая тема Следующая тема Вернуться к началу


 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения