В следующем примере (листинг 1.24) создается сетевой ярлык для сайта www.microsoft.com.
Листинг 1.24. Создание сетевого ярлыка
/*****************************************************************/
/* Имя: MakeShortcut6.js */
/* Язык: JScript */
/* Описание: Создание сетевого ярлыка для www.microsoft.com */
/*****************************************************************/
var WshShell,oUrlLink;
//Создаем объект WshShell
WshShell = WScript.CreateObject("WScript.Shell");
//Создаем ярлык в текущем каталоге
oUrlLink = WshShell.CreateShortcut("Microsoft Web Site.URL");
//Устанавливаем путь к сайту
oUrlLink.TargetPath = "http://www.microsoft.com";
//Сохраняем ярлык
oUrlLink.Save();
/************* Конец *********************************************/
Объект WshUrlShortcut
имеет два свойства: FullName
и TargetPath
, которые полностью аналогичны одноименным свойствам рассмотренного выше объекта WshShortcut
.
Также у объекта WshUrlShortcut
имеется метод Save
, с помощью которого ярлык сохраняется в каталоге, указанном в свойстве FullName
.
Другие примеры работы с ярлыками с помощью объекта WshShortcut
приведены в главе 2 (см. листинги 2.43 и 2.44).
Запуск процессов на локальной и удаленной машине
Из сценариев WSH 5.6 можно на локальной машине запускать дочерние процессы, имея при этом доступ к их стандартным входным/выходным потокам и контролируя ход выполнения этих процессов. Для этих целей предназначен объект WshScriptExec
.
Кроме этого, имеется возможность запустить сценарий, файл с которым находится на локальной машине, на другой удаленной машине. Для выполнения сценариев на удаленных машинах и обработки ошибок, возникающих в таких сценариях, используются объекты WshController
, WshRemote
и WshRemoteError
.
В WSH 5.6 появилась возможность при помощи метода WshShell.Exec
запускать консольное приложение или сценарий как дочерний процесс выполняемого сценария, т.е. с теми же переменными среды, что и у процесса-родителя. Метод WshShell.Exec
выполняет командную строку, указанную в качестве его параметра, и возвращает объект WScriptExec
, свойства и методы которого предоставляют информацию о запущенной задаче и обеспечивают доступ к ее стандартным потокам ввода/вывода и ошибок (обработка этих потоков необходима в силу того, что непосредственно на экране строки, выводимые дочерним приложением, не появляются).
Отметим также, что с помощью метода WshShell.Exec
можно запускать и графические оконные Windows-приложения. В этом случае создаваемый объект WshScriptExec
полезен тем, что он позволяет получить идентификатор запущенного процесса (Process ID, PID), который затем можно использовать для активизации задачи при помощи метода WshShell.AppActivate
.
Объект WScriptExec
имеет единственный метод Terminate
, с помощью которого можно прервать выполнение дочернего процесса.
Например:
var WshShell=WScript.CreateObject("WScript.Shell");
var ChildJob = WshShell.Exec("cscript ChildScript.js");
ChildJob.Terminate();
Метод Terminate
пытается закрыть приложение, посылая ему сообщение WM_CLOSE
. Если это не срабатывает, задача завершается принудительно. Методом Terminate
нужно пользоваться только в крайнем случае, т.к. некоторые приложения, завершенные таким способом, не полностью освобождают ресурсы. Поэтому, как правило, лучше дождаться, когда запущенная задача сама закончит свою работу.
Свойства объекта WshScriptExec
описаны в табл. 1.18.
Таблица 1.18.Свойства объекта WshScriptExec
Свойство |
Описание |
ExitCode |
Содержит код выхода, устанавливаемый дочерней задачей при завершении выполнения |
ProcessID |
Содержит идентификатор процесса (ProcessID, PID), которому соответствует объект WshScriptExec |
Status |
Содержит информацию о ходе выполнения дочерней задачи |
StdOut |
Позволяет сценарию-родителю считывать информацию из стандартного выходного потока запущенной дочерней задачи |
StdIn |
Позволяет сценарию-родителю записывать информацию в стандартный входной поток запущенной дочерней задачи |
StdErr |
Позволяет сценарию-родителю считывать информацию из стандартного потока ошибок запущенной дочерней задачи |
Читать дальше