>>* nStartedProcessHandle = (((asc(subst(cProcessInfo,4,1))*256) + ; >>* asc(subst(cProcessInfo,3,1)))*256 + ; >>* asc(subst(cProcessInfo,2,1)))*256 + ; >>* asc(left(cProcessInfo,1)) >> >> ** should be this >> nStartedProcessHandle = (((asc(subst(cProcessInfo,4,1))*256^3) + ; >> asc(subst(cProcessInfo,3,1)))*256^2 + ; >> asc(subst(cProcessInfo,2,1)))*256 + ; >> asc(left(cProcessInfo,1)) >> >> ** Get Thread handle also >> ** Both handles must then be close using CloseHandle() API >> hThread = (((asc(subst(cProcessInfo,8,1))*256^3) + ; >> asc(subst(cProcessInfo,7,1)))*256^2 + ; >> asc(subst(cProcessInfo,6,1)))*256 + ; >> asc(left(cProcessInfo,5)) >> >>* =WaitInpIdle(GetCurrProc(),cnINFINITE) >> >> * Wait for the idle of the new/child process not the idle of the current process >> WaitInpIdle( nStartedProcessHandle, cnINFINITE ) >> >> do while WaitOnAppExit(nStartedProcessHandle, cnHalfASecond) = cnTimedOut >> >>* Give us an out in case the other app hangs - lets the user quit via >> if inkey() = 27 >>* Still running but we aren't waiting - return a -1 as a warning >> uResult = -1 >> exit >> endif >> >> enddo >> >> ** Process & Thread Handles must be close >> ** or else it will remains in the system >> Declare Long CloseHandle in Kernel32 Long hObject >> >> If (nStartedProcessHandle != 0) >> CloseHandle( nStartedProcessHandle ) >> endif >> >> If (hThread != 0) >> CloseHandle( hThread ) >> endif >>