Ожидание завершения ShellExecute

Есть самописная функция разархивации CAB-файла
[code]FUNCTION activepos_file_uncab
LPARAMETERS lcCabFile, lcReceiptFile
LOCAL lnFile, lcCmd
lcCmd = "$download.cmd"
lcReceiptFile = goApp.user_temp + "" + ActiveposDataFile
lnFile = FCREATE( lcCmd )
FPUTS( lnFile , 'if exist "' + lcReceiptFile + '" del "' + lcReceiptFile + '"' )
FPUTS( lnFile , 'extrac32 /Y /E /L "' + goApp.user_temp + '" "' + lcCabFile+ '" "'+ActiveposDataFile+'"')
FPUTS( lnFile , 'del "'+lcCmd+'"' )
FCLOSE( lnFile )
ShellExecute(0, "Open", FULLPATH(lcCmd), "", "", 0)
pause( goSet.get( set_pos_uncab_timeout ) )
IF !FILE( lcReceiptFile )
goApp.error_id = err_pos_uncab
ENDIF
RETURN goApp.error_id = no_error
ENDFUNC[/code]
Как я понял после запуске батника через ShellExecute фокс продолжает работу. Я натыкался на ситуацию что разархивация не успевает завершится. Особенно если я обращаюсь к удаленному архиву. Я воткнул паузу ожидания с подобранным опытным путем таймаутом. Это, я уверен, "не кашерно". Как можно реализовать ожидание завершения батника на уровне ShellExecute или есть иная функция из виндовой API которая ждет завершение запускаемого приложения и, возможно, возвращает результат?
Win10 x64
VFP9 SP2

0

Автор публикации

Пользователи не найдены
Оставить комментарий
Авторизация
*
*
Генерация пароля