Shell script with timeout

Hello everybody, Can anybody tell me if there’s a way to know if a shell command as finished its execution in lotus script? I must stop the execution of my code until it’s over.

Thanks

Subject: Shell script with timeout

Not mine, but here:

[Declarations]

'----------Declares for Win32 Shell Control--------------

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

Public Const NORMAL_PRIORITY_CLASS = &H20&

Public Const INFINITE = -1&

Public Sub ShellAndWait(Byval RunProg As String)

’ From Kevin Pauli (kcpauli@usa.net)

Dim RetVal As Long

Dim proc As PROCESS_INFORMATION

Dim StartInf As STARTUPINFO

StartInf.wShowWindow = 6



StartInf.cb = Len(StartInf)

'Execute the given path

RetVal = CreateProcessA(0&, RunProg, 0&, 0&, 1&, _

NORMAL_PRIORITY_CLASS, 0&, 0&, StartInf, proc)

'Disable this app until the shelled one is done

RetVal = WaitForSingleObject(proc.hProcess, INFINITE)

RetVal = CloseHandle(proc.hProcess)

End Sub

Subject: Shell script with timeout

You could also try this (it requires windows scripting)

Dim objShell As Variant

Dim objExec As Variant

Set objShell=createobject("wscript.shell")

Set objExec=objShell.Exec("calc.exe")

Do While objExec.Status = 0

	Sleep 2

Loop



Msgbox "Process Completed"