Re: Запуск vbs из программы
От: AlFox  
Дата: 20.07.05 06:25
Оценка:
Здравствуйте, Chips, Вы писали:

C>Необходимо запускать из приложения скрипты VBS. Т.к. это не Экзешник и не БАТник, он его на прямую не запускает.

C>Пробовал Запускать как параметр к запускаемому файлу Wscript.exe, но возникла другая проблема.

C>Не могу разобраться с функцией CreateProcess(...) — насколько я понял первый параметр отвечает за полный путь к запускаемому файлу, а второй параметр за аргументы, которые приписываются к запускаемому файлу. Это так? Если так, то как корректно его запустить?

C>(использую CreateProcess(...), т.к. нужно отследить еще и завершение приложения)

C>В итоге, Вопрос Темы такой: Какие есть способы запуска VBS скрипта из программы.

C>Спасибо

Пример работы с CreateProcess:

var 
 pi : TProcessInformation;  
 si : TStartupInfo;  
  
begin 
 ZeroMemory(@si,sizeof(si));  
 si.cb:=SizeOf(si);  
 if not CreateProcess(  
    PChar(lpApplicationName), //pointer to name of executable module  
    PChar(lpCommandLine), // Command line.  
    nil, // Process handle not inheritable.  
    nil, // Thread handle not inheritable.  
    False, // Set handle inheritance to FALSE.  
    0, // No creation flags.  
    nil, // Use parent's environment block.  
    nil, // Use parent's starting directory.  
    si, // Pointer to STARTUPINFO structure.  
    pi ) // Pointer to PROCESS_INFORMATION structure.  
 then begin  
 Result:=false;  
 RaiseLastWin32Error;   
 Exit;  
end;  
 
 while WaitforSingleObject(PI.hProcess,200)=WAIT_TIMEOUT do   application.ProcessMessages;   
 
 CloseHandle(pi.hProcess);  
 
 CloseHandle(pi.hThread);  
 
end;


(с)DRKB от Vit

Если надо отслеживать завершение приложения, то это оптимальный способ.


Всегда с Вами... AlFox...

 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.