Запуск ActiveXObject не возвращает (оболочка)

Я запускаю сценарий оболочки из среды JavaScript с помощью ActiveXObject. Все работает нормально, если я не включаю никаких параметров в функцию запуска:

var x = new ActiveXObject("WScript.Shell");
x.Run("%comspec% /K dir")
alert("I am here!")

Согласно документации, «метод Run также принимает логическое значение в качестве третьего параметра, который определяет, будет ли сценарий приостанавливаться до тех пор, пока вызываемая программа не завершит выполнение, или вместо этого переходит к следующей команде в сценарии. Если для этого значения установлено значение False ( значение по умолчанию), метод Run просто выдает команду для запуска программы, но не проверяет, действительно ли программа запущена. Если для третьего параметра задано значение True, сценарий будет ждать завершения выполнения программы, возвращает целое число. код выхода, предоставленный программой, а затем перейдите к следующей строке сценария ».

Я пробовал использовать оба

x.Run("%comspec% /K dir"), 1, True
alert("I am here!")

а также

x.Run("%comspec% /K dir"), 1, False
alert("I am here!")

но мой код всегда зависает. Предупреждение никогда не отображается. Что я делаю неправильно? (Мне нужно использовать третий аргумент = true в моем коде) Спасибо!


person Touloudou    schedule 28.05.2015    source источник


Ответы (1)


Вы должны указать аргументы в скобках:

x.Run("%comspec% /K dir", 1, true);

В настоящее время в вашем скрипте используется пара операторов запятой. Сначала он выполняет метод Run, оценивает 1 и, наконец, переходит к неопределенному имени переменной (True). JS чувствителен к регистру.

person Teemu    schedule 28.05.2015
comment
Проблема исправлена! Я использовал True вместо true ... Спасибо! - person Touloudou; 28.05.2015