Wait external task ending

Hello! I’ve a problem, i need in a agent to start with lotuscript function ‘shell’ an external task, and before continue my agent i’ve waiting the end of this task. Could you halp me to solve this problem?

Thanks a lot

Subject: Wait external task ending

You could use the following code, where “commandstr” is the command as would be entered in a dos-box:

[declarations]

Public Const NORMAL_PRIORITY_CLASS = &H20&

Public Const INFINITE = -1&

Public Type STARTUPINFO

cb As Long

lpReserved As String

lpDesktop As String

lpTitle As String

dwX As Long

dwY As Long

dwXSize As Long

dwYSize As Long

dwXCountChars As Long

dwYCountChars As Long

dwFillAttribute As Long

dwFlags As Long

wShowWindow As Integer

cbReserved2 As Integer

lpReserved2 As Long

hStdInput As Long

hStdOutput As Long

hStdError As Long

End Type

Public Type PROCESS_INFORMATION

hProcess As Long

hThread As Long

dwProcessID As Long

dwThreadID As Long

End Type

Declare Function WaitForSingleObject Lib “kernel32” (Byval hHandle As Long, Byval dwMilliseconds As Long) As Long

Declare Function CreateProcessA Lib “kernel32” (Byval lpApplicationName As Long, Byval lpCommandLine As String, Byval lpProcessAttributes As Long, Byval lpThreadAttributes As Long, Byval bInheritHandles As Long, Byval dwCreationFlags As Long, Byval lpEnvironment As Long, Byval lpCurrentDirectory As Long, lpStartupInfo As STARTUPINFO, lpProcessInformation As PROCESS_INFORMATION) As Long

Declare Function CloseHandle Lib “kernel32” (Byval hObject As Long) As Long

Sub ShellandWait(commandstr as String)

Dim i As Integer

Dim RetVal As Long

Dim proc As PROCESS_INFORMATION

Dim StartInf As STARTUPINFO



StartInf.cb = Len(StartInf)

RetVal = CreateProcessA(0&, commandstr, 0&, 0&, 1&, NORMAL_PRIORITY_CLASS, 0&, 0&, StartInf, proc)	

RetVal = WaitForSingleObject(proc.hProcess, INFINITE)

RetVal = CloseHandle(proc.hProcess)