Тема: VBScript: WScript - требуется объект
конструкции типа WScript.Echo или WScript.Sleep вызывают ошибку "Требуется объект", даже в чужих работающих примерах. Какие-то компоненты не установлены или в чем может быть причина?
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Серый форум → Общение → Windows Script Host, HTA (VBScript, JScript) → VBScript: WScript - требуется объект
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
конструкции типа WScript.Echo или WScript.Sleep вызывают ошибку "Требуется объект", даже в чужих работающих примерах. Какие-то компоненты не установлены или в чем может быть причина?
Скорее всего потому, что Вы примеры используете в скрипте внутри HTML.
Такие конструкции как WScript.Echo или WScript.Sleep могут быть использованы только если вы используете запуск скрипта через Wscript.exe или Cscript.exe.
Спасибо за ответ. Я пытаюсь использовать вышеуказанные конструкции в hta-приложении. Подскажите пожалуйста, как "использовать запуск скрипта через Wscript.exe" на практике (для "чайников"), а если в случае hta-приложения этого сделать нельзя, то как приостановить выполнение скрипта, кроме "вечного цикла".
Подскажите пожалуйста, как "использовать запуск скрипта через Wscript.exe" на практике (для "чайников"), а если в случае hta-приложения этого сделать нельзя, то как приостановить выполнение скрипта, кроме "вечного цикла".
Использовать скрипт очень просто - создайте файл с расширением .VBS и запускайте его.
Для удобства работы с большим потоком выводимых данных необходимо использовать Cscript, т.к. при запуске через WScript.exe метод WScript.Echo эквивалентен MsgBox.
Использование: 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 Использование кодировки Юникод при перенаправлении ввода-вывода с консоли
Спасибо, т.е., если я вынесу часть кода во внешний vbs-файл и запущу WScript или Cscript c ним в качестве сценария из html-страницы или hta-приложения методами ShellExecute или Run, то объект Wscript.Sleep сработает?
Сработает. Но на HTA это не отразится.
Спасибо за участие, очевидно, запуск WScript.exe методами Run и ShellExecute создает отдельный процесс, на который и действует код сценария-параметра. Но есть же какой-то способ приостановить hta-приложение на время загрузки Excel, вызываемого из скрипта в hta, не загружая процессор циклом? Ведь если делать опрос наступления события, а оно не наступит? И какое время ожидания считать приемлемым в зависимости от техники? Может быть, есть какой либо-метод Shell.Application или WScript.Shell - эти объекты доступны, но я не нашла ничего подходящего. Или можно как-то воспользоваться ответами на тему "CMD/BAT: sleep штатными средствами", но чтобы это воздействовало на заданную работающую в ОС задачу, т.е. что-то на уровне ОС, а не изнутри самой задачи?
Способа приостановить скрипт в .hta приложении, в общем-то нет. Есть трансляция WScript в hta, но лучше, по возможности, изменить алгоритм самого скрипта так, чтобы можно было использовать setTimeOut и setInterval.
Спасибо
Спасибо, буду изучать
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться