Так как объект WSHShell создается
Так как объект WSHShell создается внутри функции, то он будет существовать только до тех пор, пока мы из этой функции не выйдем. Т.е. за пределами Welcome() объекта WSHShell нет, поэтому и появляется ошибка. Давайте немного модифицируем скрипт, чтобы объект WSHShell описать только один раз:
//Пример запуска программы с диалоговым окном запроса //на JScript var vbOKCancel = 1; var vbInformation = 64; var vbCancel = 2; var Message = "Вы действительно хотите запустить программу Notepad?"; var Title = "Подтвердите действие"; var WSHShell = WScript.CreateObject("WScript.Shell"); Welcome();
WSHShell.Run("notepad",5);
function Welcome() { var intDoIt;
intDoIt = WSHShell.Popup(Message, 0, Title, vbOKCancel + vbInformation ); if (intDoIt == vbCancel) { WScript.Quit(); } }
Теперь создание WSHShell происходит до вызова функции Welcome() и создавать его повторно внутри функции нет необходимости. Такая переменная называется глобальной. Т.е. она существует на протяжении всего времени выполнения скрипта и видна во всех функциях. Переменная которая создается внутри функции и видна только в этой функции называется локальной.
Давайте вернемся к строке
WSHShell.Run("notepad",5); и рассмотрим ее подробнее. При вызове метода Run передаются 2 переменных. Если с первой все понятно - это имя запускаемого файла (т.к. файл notepad находится в каталоге Windows, который присутствует в переменной среды окружения Path, то можно не указывать полный путь к нему. В противном случае для запуска программы надо указывать ее полное имя, например: "C:\polniy\put_k\programme\file.exe"), то со второй не все так просто. Эта цифра указывает состояние окна запускаемой программы. Она может принимать десять различных значений от 0 до 9, но все я описывать не буду, а расскажу только про самые интересные:
0 - запускать программу в скрытом окне. Т.е. если вы попытаетесь запустить Блокнот с таким значением второй переменной, то окно программы будет невидимым и кнопка на панели задач не будет создана.
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий