Граф наследования:Executor:
Открытые члены | |
Execute ([out, retval] VARIANT_BOOL *Result) | |
Запускает процесс. | |
Wait ([in, defaultvalue(0xFFFFFFFF)] ULONG TimeOut,[out, retval] VARIANT_BOOL *Result) | |
Ожидание завершения процесса. | |
Terminate ([in, defaultvalue(1)] ULONG ProcessExitCode,[out, retval] VARIANT_BOOL *Result) | |
Завершает процесс. | |
Свойства | |
BSTR RW | ApplicationName [] |
Имя модуля для запуска. | |
BSTR RW | CommandLine [] |
Командная строка запуска процесса. | |
ULONG R | ExitCode [] |
Возвращает код завершения процесса. | |
BSTR RW | IntegrityLevel [] |
Определяет использование механизма целостности Windows (Windows Integrity Mechanism) при запуске процесса. | |
IDispatch *R | Error [] |
Если произошла ошибка запуска процесса, возвращает объект Error, содержащий информацию об ошибке. | |
VARIANT W | OnComplete [] |
Задает обработчик события OnComplete. |
См. также ExecutorEvents.
Пример (JScript):
o = new ActiveXObject("Scripting.WindowSystemObject") ext = new ActiveXObject("Scripting.WindowSystemObjectExtensions") f = o.CreateForm(0,0,0,0) f.ClientWidth = 500 f.ClientHeight = 300 f.CenterControl() top = 10 for (i = 0; i<3; i++) { f.TextOut(10,top,"Process: "+i); status = f.TextOut(100,top,"") executor = ext.CreateExecutor() executor.CommandLine = "calc.exe" executor.UserData = status executor.OnComplete = function(Sender) { Sender.UserData.Text = "Completed/"+Sender.ExitCode } top += 30 if (executor.Execute()) status.Text = "Started"; else status.Text = "Error" } f.Show() o.Run()
Execute | ( | [out, retval] VARIANT_BOOL * | Result | ) |
Terminate | ( | [in, defaultvalue(1)] ULONG | ProcessExitCode, | |
[out, retval] VARIANT_BOOL * | Result | |||
) |
Завершает процесс.
ProcessExitCode | Код завершения процесса. |
Result | Если "TRUE", то процесс успешно завершен. |
Wait | ( | [in, defaultvalue(0xFFFFFFFF)] ULONG | TimeOut, | |
[out, retval] VARIANT_BOOL * | Result | |||
) |
Ожидание завершения процесса.
TimeOut | Время ожидания в секундах. 0xFFFFFFFF = INFINITY - время ожидания не ограничено. |
Result | Если "TRUE", то процесс завершен. |
BSTR RW ApplicationName |
Имя модуля для запуска.
ApplicationName может быть пустой строкой. В этом случае имя модуля для запуска определятся первым компонентом в CommandLine.
Если используется путь к модулю, который содержит пробелы, то его нужно заключить в двойные кавычки, иначе модуль запускаемого процесса нельзя определить однозначно. Например, рассмотрим строку "c:\program files\sub dir\program name", эта строка может быть проинтерпретирована различными способами:
BSTR RW CommandLine |
Командная строка запуска процесса.
Максимальная длина 32K символов.
Если ApplicationName = пустая строка, первый компонент в CommandLine является именем модуля и его длина ограничена MAX_PATH.
CommandLine может быть пустой строкой. В этом случае Executor использует ApplicationName в качестве командной строки.
IDispatch* R Error |
Если произошла ошибка запуска процесса, возвращает объект Error, содержащий информацию об ошибке.
ULONG R ExitCode |
Возвращает код завершения процесса.
BSTR RW IntegrityLevel |
Определяет использование механизма целостности Windows (Windows Integrity Mechanism) при запуске процесса.
Задает уровень целостности процесса.
Данный параметр может принимать следующие значения:
Примечание. Если IntegrityLevel="" то используется функция WINAPI CreateProcess, иначе CreateProcessAsUser.
Примечание. Только для Windows Vista и последующих версий.
Пример (JScript):
o = new ActiveXObject("Scripting.WindowSystemObject") ext = new ActiveXObject("Scripting.WindowSystemObjectExtensions") f = o.CreateForm(0,0,0,0) f.ClientWidth = 500 f.ClientHeight = 300 f.CenterControl() f.TextOut(10,10,"Integrity level:") integrityLevel = f.CreateComboBox(100,10,100,25) integrityLevel.Add("Untrusted") integrityLevel.Add("Low") integrityLevel.Add("Medium") integrityLevel.Add("High") integrityLevel.Add("System") label = f.TextOut(10,40,"") button = f.CreateButton(220,10,75,25,"Start") button.OnClick = function(){ executor = ext.CreateExecutor() executor.CommandLine = "notepad.exe" executor.IntegrityLevel = integrityLevel.Text executor.OnComplete = function(Sender){ label.Text = "Completed/"+Sender.ExitCode } if (executor.Execute()) { label.Text = "Started" } else { label.Text = "Error/"+executor.Error.Number+"/"+executor.Error.Description+"/"+executor.Error.Comment } } button = f.CreateButton(300,10,75,25,"Terminate") button.OnClick = function(){ executor.Terminate(10) } button = f.CreateButton(380,10,75,25,"Wait") button.OnClick = function(){ f.MessageBox("Wait result: "+executor.Wait()) } f.Show() o.Run()
VARIANT W OnComplete |
Задает обработчик события OnComplete.
Данное событие возникает при завершении процесса.