Запуск внешних приложений из формы VB

Узнай цену своей работы

Формулировка задачи:

Добрый день! Возникла проблема, с которой не могу справиться: Нужно в программе запустить подряд два внешних приложения, причем второе должно выполняться, когда закончит работу первое. Никаких функций кроме shell для запуска не нашел, а в справке указано, что shell выполняется асинхронно. Посоветуйте, как решить проблему. Заранее спасибо.

Решение задачи: «Запуск внешних приложений из формы VB»

textual
Листинг программы
Public Const STILL_ACTIVE = &H103&
Public Const PROCESS_QUERY_INFORMATION = &H400&
 
Public Declare Function OpenProcess Lib 'kernel32' (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Public Declare Function GetExitCodeProcess Lib 'kernel32' (ByVal hProcess As Long, lpExitCode As Long) As Long
Public Declare Function CloseHandle Lib 'kernel32' (ByVal hObject As Long) As Long
 
Private Sub WaitProcessFinish(ByVal plngProcessId&)
   Dim lngProcessHandle&
   Dim lngExitCode&
 
   lngProcessHandle = OpenProcess(PROCESS_QUERY_INFORMATION, False, plngProcessId)
 
   Do
      Call GetExitCodeProcess(lngProcessHandle, lngExitCode)
      DoEvents
   Loop While lngExitCode = STILL_ACTIVE
 
   Call CloseHandle(lngProcessHandle)
End Sub
 
Sub Main()
    WaitProcessFinish Shell('zzz.exe', vbNormalFocus)
End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.143 из 5
Похожие ответы