powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как получить объект WScript???
25 сообщений из 25, страница 1 из 1
Как получить объект WScript???
    #33068089
Сергей84
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть вот такой вот код в обыкновенном текстовом файле с расширением vb:
Код: plaintext
1.
2.
MsgBox(Now)
WScript.Sleep  3000 
MsgBox(Now)
Как не трудно догадаться - это просто пауза...

Вопрос вот в чем, как получить объект WScript в другой программе по средствам VB, т.е. через CreateObject или GetObject??? и что это за зверь такой???
...
Рейтинг: 0 / 0
Как получить объект WScript???
    #33068112
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
set WshShell = Wscript.CreateObject("Wscript.Shell")
...
Рейтинг: 0 / 0
Как получить объект WScript???
    #33068148
Сергей84
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Видимо вы не внимательно прочитали мой вопрос, мне нужно получить объект WScript через функции CreateObject или GetObject, а в вашем примере он заведомо уже создан, так как же он у вас появился???
Ктому же код составленный по вашему примеру не работоспособен:
Код: plaintext
1.
set WshShell = CreateObject("Wscript.Shell")
WshShell.Sleep  3000 
Грит "Объект не поддерживает это свойство или метод"
...
Рейтинг: 0 / 0
Как получить объект WScript???
    #33068177
gsv1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Wscript нельзя получить с помощью CreateObject. CreateObject - это метод Wscript.
...
Рейтинг: 0 / 0
Как получить объект WScript???
    #33068782
Сергей84
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В таком случае, как можно реализовать следующий код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
TextScript="  
|Function Run
|	WScript.Sleep 3000
|End Function
|";


ScrptCtrl	= CreateObject("MSScriptControl.ScriptControl");
ScrptCtrl.Language	= "vbscript";
ScrptCtrl.AddCode(TextScript);   
ScrptCtrl.Run("Run");
???
В данном случае не получается получить объект WScript, а только он обладает нужной мне процедурой...
...
Рейтинг: 0 / 0
Как получить объект WScript???
    #33071581
Сергей84
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
up
...
Рейтинг: 0 / 0
Как получить объект WScript???
    #33074709
Абориген
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что надо-то? Задержку? Тогда:

Private Declare Sub Sleep Lib "Kernel32" (ByVal dwMilliseconds As Long)

MsgBox(Now)
Sleep 3000
MsgBox(Now)

А если VBScript гонять, то это Shell()...
...
Рейтинг: 0 / 0
Как получить объект WScript???
    #33074740
Сергей84
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо получить доступ к объекту WScript, просто проверяется это лучше всего на паузе...
Проблема в том, что
Declare не прокатывает при использовании VBS - выдает ошибку, попробуйте в текстовом файле с расширением VBS задекларировать что-нибудь - скрипт будет ругаться на слово Declare
А делать нужно имеено через скрипт, т.к. код скрипта будет генерироваться на лету, такое позволяет делать WSH, но при его использовании он не может получить доступ к объекту WScript, к которому можно легко обратиться с помощью все того же текстового файла - вот и стоит делема, как обойти эти присловутые ограничения?
...
Рейтинг: 0 / 0
Как получить объект WScript???
    #33074760
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как получить объект WScript???
    #33074771
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ааа, сорри, не прочитал ваш последний пост про то что вызрв нужен именно из vbs.
хотя можно же написть прогу на васике с исп scriptcontrol а ей передавать в кач-ве параметра тот скрипт, которой надо выполнить.
...
Рейтинг: 0 / 0
Как получить объект WScript???
    #33074792
Сергей84
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программа не подойдет, т.к. ее придется тоскать за собой для ее работы, а тут нужен инифицированный подход, что если ОС держит WSH - то должно работать...
dll - ки такого плана я уже писал, но тут дело идет дальше, т.к. код будет выполняться по мере необходимости для аминистративных нужд...
Все это дело прикручивается к 1С - там уже реализовано формирование произволного кода и отправка его на отсылку, просто не ко всем объектам получается получить доступ - вот и приходится изобретать велосипед
...
Рейтинг: 0 / 0
Как получить объект WScript???
    #33076460
Sung Chen Young
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
"не получается получить объект WScript, а только он обладает нужной мне процедурой" - что за процедура-то, и для какой цели? Может, другим способом решить можно?
По сабжу: создайте программно текстовый файл с расширением VBS, запишите туда свою программу и программно запускайте этот файл. С объектом WScript я всегда поступаю именно так, если он мне нужен где-то НЕ в среде WSH.
...
Рейтинг: 0 / 0
Как получить объект WScript???
    #33077197
Сергей84
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для начала бы хотелось получить вызвать паузу - для последующего развития...
Текстовый файл не подходит, т.к. при его запуске он будет выполняться в своем новом процессе независимо от процесса который его запустил
...
Рейтинг: 0 / 0
Как получить объект WScript???
    #33077763
Sung Chen Young
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так ЧТО всё же требуется сделать, для чего незаменим WScript? Или это страшная тайна?
"Для начала бы хотелось получить вызвать паузу - для последующего развития..." - получить паузу тем способом, который я предложил - запросто.
...
Рейтинг: 0 / 0
Как получить объект WScript???
    #33077957
Сергей84
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет не тайна...
Просто я не думаю что WScript умеет делать только паузу, полюбому есть еще какие - нибудь процедуры, которыми обладает только он...
В данном случае мне нужна только ПАУЗА, какой смысл пробовать что-то еще, если самое прмитивное не работает...
Текстовый файл не подходит, т.к. 1С не проверяет выполнение кода запущенного ей приложения, она просто его запускает отдельным процессом, а что он делает и что с ним будет ей всеравно Нужно именно передать управление другому коду (VB\Java) в контексте 1С на исполнение, а нужно это затем, что встроенный язык 1С как всем известно хромает, и в нем нет такой важной вещи, как GetObject() тот же самый
Вот и извращаюсь, начальство то требует
...
Рейтинг: 0 / 0
Как получить объект WScript???
    #33077988
Sung Chen Young
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пауза в 1С средствами WScript:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Темп=КаталогВременныхФайлов()+"sleep.vbs";
Текст=СоздатьОбъект("Текст");
Текст.ДобавитьСтроку("wscript.sleep 1000");
Текст.Записать(Темп);
cmdLine="wscript.exe "+Темп;
WshShell=СоздатьОбъект("WScript.Shell");
Для сч=- 10  По - 1  Цикл
    Состояние("Осталось спать "+(-сч)+" секунд");
    WshShell.Run(cmdLine,  0 , - 1 );
КонецЦикла;
Сообщить("Обработка завершена.","!");
ФС.УдалитьФайл(Темп);
Про то, как использовать в 1С функцию GetObject(), читайте статью "Использование объекта Microsoft Script Control в среде 1С:Предприятие v7.7" на сайте http://www.script-coding.info/.

Заходите на форум http://www.forum.script-coding.info/ и задавайте там вопросы по скриптам, 1С, и подобному.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Как получить объект WScript???
    #35659131
kefi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хотелось бы узнать все же ответ на поставленный в ПЕРВОМ ПОСТЕ Вопрос.

Тут было много вопросов - для чего ? Вообще говоря, это ведь не важно, но отвечу - хочется использовать код И в VB библиотеке И автономно, следовательно было бы очень удобно вначале кода программы написать что-то вроде :
Set WScript=GetObject("WScript") ' - что как известно не работает

Потом уже юзать это в программе, например :
Set WshShell = WScript.CreateObject("WScript.Shell")
...............
И этот кусок уже можно вырезая использовать в vbs файле, а отлажен он может быть в VB.
...
Рейтинг: 0 / 0
Как получить объект WScript???
    #35659150
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kefiХотелось бы узнать все же ответ на поставленный в ПЕРВОМ ПОСТЕ Вопрос.
Ты ТОЧНО этого хочешь? Ну на, сам просил:
http://www.computerra.ru/softerra/technologizm/6210/index.html
...
Рейтинг: 0 / 0
Как получить объект WScript???
    #35659180
kefi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Белому Сове> Ты ТОЧНО этого хочешь?

Я это хочу неточно. Я хочу уже готовый объект.
Вообще цель-то - отлаживать код в VB , а использовать его с минимальной переделкой или вообще без нее в VBS файлах.
...
Рейтинг: 0 / 0
Как получить объект WScript???
    #35659253
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дык создай собственный класс аналогичный WShell. Dim WShell as MyShell. Скрипту наплевать, оригинальный он или нет.
Добавь в референсах файл wscript.exe и посмотри, какие свойства и методы содержит IHost_Class, реализовать можно только нужные тебе.
...
Рейтинг: 0 / 0
Как получить объект WScript???
    #35661345
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kefiВообще цель-то - отлаживать код в VB , а использовать его с минимальной переделкой или вообще без нее в VBS файлах.Для отладки достаточно кода типа такого:
Код: plaintext
if bDebug= 1  then WScript.Echo somevariable
Подключать wsh в vb отладки ради - извращение.
...
Рейтинг: 0 / 0
Как получить объект WScript???
    #35663263
kefi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White OwlkefiВообще цель-то - отлаживать код в VB , а использовать его с минимальной переделкой или вообще без нее в VBS файлах.Для отладки достаточно кода типа такого:
Код: plaintext
if bDebug= 1  then WScript.Echo somevariable

Ну и будет ВЕСЬ код везде, где используется в скрипте объект WScript, усыпан такими "if bDebug=1 then ..." - это вот извращение. Задача же , чтобы Код не меняясь вообще или буквально в паре строк меняясь из VB кода превратиться в VBS код.
Действительно , надо будет заняться тем, что Antonariy предложил, т.е. сделать просто fake объекта.
...
Рейтинг: 0 / 0
Как получить объект WScript???
    #35663961
AndreyArtemev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VBS:
Код: plaintext
1.
2.
s = "wscript.sleep 3000: MsgBox 1"
Execute s
...
Рейтинг: 0 / 0
Как получить объект WScript???
    #35976738
AngelicCare
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей84,
На http://groups.google.com/group/microsoft.public.scripting.wsh/browse_thread/thread/e194834f273df21d/4b24b6d41f6c5b96?lnk=raot нашёл...

Осталось отладить и научиться (и научить) этим пользоваться... И меня...

--- <wscript class code> ---
' WScript Class, an attempt to provide WScript Functionality
' to scripts running in the ms ScriptConstrol, jw 09Jun01

Option Explicit

' --- Declarations and Constants -----------------
Private Declare Sub apiSleep Lib "kernel32" Alias "Sleep" (ByVal
dwMilliseconds As Long)
'
Private Declare Function SetCurrentDirectory Lib "kernel32" _
Alias "SetCurrentDirectoryA" (ByVal lpPathName As String) As Long
Private Declare Function GetCurrentDirectory Lib "kernel32" _
Alias "GetCurrentDirectoryA" (ByVal nBufferLength As Long, ByVal
lpBuffer As String) As Long
'
Private Const MAX_PATH = 260
'
Private m_myParent As frmMain ' parent of this class as form object
'
Private nRtn As Long ' used to hold api return values...
' --- end of decalarations and constants ---------
'
' -------------------------------------------------
' the following two routines are part of the "callback" process,
' whereby the parent (control) and the child (this class)
' exchange calling cards. The "callback" is used as a
' way to access code and objects in the parent form.
' For more info on this, get yourself a copy of
' Dan Appleman's book, entitled:
' "Developing ActiveX Components w/vb 5", pg 243.
' -------------------------------------------------

Public Property Let Parent(pSource As frmMain)

Debug.Print "[myForm] .. frmSetParent called"
' debugging stuff (bugassert expects TRUE)...
ArgAssert Not (pSource Is Nothing), "[LetParent], pSource is
nothing!!!"

Set m_myParent = pSource

End Property

Public Property Get Parent() As frmMain

Debug.Print "[myForm] .. frmGetParent called"
' debugging stuff (bugassert expects TRUE)...
ArgAssert Not (m_myParent Is Nothing), "[GetParent], m_myParent is
nothing!!!"

Set Parent = m_myParent

End Property
' --- end of callback stuff -----------------------------


Public Property Get CreateObject(vProgID As Variant, Optional vPrefix As
Variant = "") As Object
Set CreateObject = vbCreateObject(CStr(vProgID))

' if there is a second argument provided, then connect it...
' If IsMissing(vPrefix) Then Exit Property
' Parent.wsConnect CStr(vPrefix), CreateObject
End Property

' --- Get / Set Current Working Directory ----------

Public Property Let CurrentDirectory(vRHS As Variant)
nRtn = SetCurrentDirectory(CStr(vRHS))
End Property

Public Property Get CurrentDirectory() As Variant
Dim sBuf As String
Dim iNull As Integer

sBuf = String(MAX_PATH, Chr(0)) ' allocate string buffer
nRtn = GetCurrentDirectory(MAX_PATH, sBuf)

iNull = InStr(sBuf, Chr(0)) ' trim the returned string...
If iNull > 0 Then sBuf = Left(sBuf, iNull)
CurrentDirectory = sBuf
End Property

' --- "Easy" WScript Methods (Echo, Sleep, Quit) ---

Public Sub Echo(sMsg As Variant)
' ignore any multiple-string-parameters, for now...
MsgBox CStr(sMsg)
End Sub

Public Sub Sleep(tSnooze As Variant)
apiSleep CLng(tSnooze)
End Sub

Public Sub Quit()
Parent.QuitScript
End Sub
--- </wscript class code> ---
...
Рейтинг: 0 / 0
Как получить объект WScript???
    #35977003
AndrF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kefiТут было много вопросов - для чего ? Вообще говоря, это ведь не важно, но отвечу - хочется использовать код И в VB библиотеке

ScriptControl позволяет исполнять VBS код - хоть целыми модулями туда загружай и исполняй из приложения.
...
Рейтинг: 0 / 0
25 сообщений из 25, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как получить объект WScript???
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]