- Код: Выделить всё
Dim SHInfo As SHELLEXECUTEINFO
SHInfo.hWnd = Me.hWnd
SHInfo.lpVerb = "open" 'Нам надо открыть файл
SHInfo.cbSize = LenB(SHInfo) 'Указываем размер всей структуры
SHInfo.lpFile = LNK_PATH & Item.Key & ".lnk" 'Формируем полный путь к ярлыку
SHInfo.fMask = SEE_MASK_NOCLOSEPROCESS 'Это указываем, что хотим следить за окончанием процесса...
SHInfo.nShow = SW_SHOW
Call ShellExecuteEx(SHInfo) 'Собственно, запускаем
И затем ожидает окончания его выполнения. Но проблема в том, что другая программа запускает другой процесс, а сама завершается. И я хотел спросить - можно ли как-то при ожидании завершения процесса учитывать не только данный процесс, но также процессы, запущенные этим процессом? Понятно, что для этого надо использовать WaitForMultipleObjects, но вот как получить хэндлы на другие процессы, я не знаю.
Единственное, что мне приходит в голову - после завершения ожидания просмотреть все процессы, проверяя их родительский процесс, и ждать и его завершения... Но не думаю, что это правильный выход...