Почему объект WSCript не известен моему сценарию, управляемому пользовательским IScriptControl? - PullRequest
0 голосов
/ 15 ноября 2010

Я использую чужую библиотеку, которая предоставляет свой собственный экземпляр хоста скриптинга.

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

Однако, когда я пытаюсь получить доступ к объекту "WScript", я получаю исключение о том, что это ключевое слово не определено.

Разработчик, тоже не особо разбирающийся в этом (он сделал эту библиотеку только для меня, потому что я не хочу сейчас иметь дело с Windows SDK), сказал мне, что он использует для этого IScriptControl.

О, и библиотека также предоставляет флаги, чтобы разрешить «только безопасное подмножество» и «разрешить пользовательский интерфейс», для которых я установил false и true соответственно.

Это звонит кому-нибудь? Должен ли пользователь IScriptControl предпринимать дополнительные действия, чтобы сделать объект WScript доступным? Или он может использовать IScriptControl таким образом, чтобы он предоставлялся автоматически, так же, как при запуске того же скрипта из wscript.exe?

По сути, все, что мне нужно, это функция WScript.CreateObject для доступа к API другого приложения через COM.

1 Ответ

0 голосов
/ 18 ноября 2010

Я не знаю, почему WScript не известен, но я подозреваю, что это потому, что хост сценария не предоставляет его. Может быть, только wscript.exe делает это.

Если вы используете Javascript, для создания объекта вы можете использовать new ActiveXObject(). Если вы используете VBScript, вы можете просто использовать CreateObject.

См. эту статью для некоторого фона.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...