Проблема с VBScript и CreateObject - PullRequest
       32

Проблема с VBScript и CreateObject

0 голосов
/ 18 января 2012

Я не очень экспериментировал, если речь идет о VBScript, но у меня была возможность прочитать много вещей через форумы, и фактически вчера я помог кому-то выяснить, почему его скрипт не работал, и нашел для него решение.Таким образом, я изменил этот скрипт локально и сделал так, как хотел бы, и он работал, но на стороне другого человека один объект не мог быть инициализирован.1005 * Другой человек сказал, чтобы удалить WScript, и кажется, что он работает на стороне задающего вопрос.

Сначала я подумал, что это может быть связано с использованием Wscript.exe на моей стороне и CScript.exe на этомсторона человека (моя гипотеза), но я проверил это в командной строке, и все равно это сработало.Итак, что я хотел бы знать и понимать, почему это происходит?Почему скрипт, вызывающий CreateObject, работает с "WScript".но в другой системе вам нужно удалить этот «WScript».чтобы он работал?Спасибо за ваше время и ответы.;) С уважением.

1 Ответ

3 голосов
/ 18 января 2012

«WScript» в «WScript.CreateObject» или «WScript.Echo» - это (имя объекта), предоставляемое хостом сценариев c | wscript.exe.Если вы запускаете VBScript под / на других хостах (например, т. Е. Или mshta), такого объекта не будет.

В самом языке есть функция "CreateObject" (отличается!использоваться в / во всех хостах VBScripts.Поэтому используйте безопасный «CreateObject», чтобы быть в безопасности.

WScript в «WScript.Network» является частью ProgId COM-объекта, который может быть установлен на вашем компьютере (или нет).Эти COM-объекты с именем «WScript» полностью отличаются от объекта WScript, предоставляемого c | wscript.exe.

Итак, мое первое предположение: «кто-то» выполнил код в / in, т.е.или mshta и решил проблему, удалив "WScript".из "WScript.CreateObject", то есть путем возврата к собственному CreateObject VBScript.

...