Как дождаться выполнения программы - VB

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

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

Есть программа на VB6 в ней код

Каким образом приостановить выполнение программы пока внешние приложение запушено?
Допускаю что функция shell здесь не уместна - но тогда какая?
Внешнее приложение тоже на vb6.(т.е рассмотрюю все варианты ;) )
Итак: Как организовать приостановку работы первой программы на время выполнения запущенной ей второй программы?
Заранее спасибо.

Решение задачи: «Как дождаться выполнения программы»

textual
Листинг программы
Private <font color="blue">Declare</font> Function CreateProcessA Lib <b><font color="green">"kernel32"</font></b> (ByVal _
<br>   lpApplicationName <font color="blue">As</font> Long, ByVal lpCommandLine <font color="blue">As</font> String, ByVal _
<br>   lpProcessAttributes <font color="blue">As</font> Long, ByVal lpThreadAttributes <font color="blue">As</font> Long, _
<br>   ByVal bInheritHandles <font color="blue">As</font> Long, ByVal dwCreationFlags <font color="blue">As</font> Long, _
<br>   ByVal lpEnvironment <font color="blue">As</font> Long, ByVal lpCurrentDirectory <font color="blue">As</font> Long, _
<br>   lpStartupInfo <font color="blue">As</font> STARTUPINFO, lpProcessInformation <font color="blue">As</font> _
<br>   PROCESS_INFORMATION) <font color="blue">As</font> Long
<br>
<br>Private <font color="blue">Declare</font> Function WaitForSingleObject Lib <b><font color="green">"kernel32"</font></b> (ByVal _
<br>   hHandle <font color="blue">As</font> Long, ByVal dwMilliseconds <font color="blue">As</font> Long) <font color="blue">As</font> Long
<br>
<br>Private <font color="blue">Declare</font> Function CloseHandle Lib <b><font color="green">"kernel32"</font></b> (ByVal _
<br>   hObject <font color="blue">As</font> Long) <font color="blue">As</font> Long
<br>
<br>Private Const NORMAL_PRIORITY_CLASS = &H20&
<br>Private Const INFINITE = -<b><font color="darkblue">1</font></b>&
<br>
<br>Private Type STARTUPINFO
<br>   cb <font color="blue">As</font> Long
<br>   lpReserved <font color="blue">As</font> String
<br>   lpDesktop <font color="blue">As</font> String
<br>   lpTitle <font color="blue">As</font> String
<br>   dwX <font color="blue">As</font> Long
<br>   dwY <font color="blue">As</font> Long
<br>   dwXSize <font color="blue">As</font> Long
<br>   dwYSize <font color="blue">As</font> Long
<br>   dwXCountChars <font color="blue">As</font> Long
<br>   dwYCountChars <font color="blue">As</font> Long
<br>   dwFillAttribute <font color="blue">As</font> Long
<br>   dwFlags <font color="blue">As</font> Long
<br>   wShowWindow <font color="blue">As</font> Integer
<br>   cbReserved2 <font color="blue">As</font> Integer
<br>   lpReserved2 <font color="blue">As</font> Long
<br>   hStdInput <font color="blue">As</font> Long
<br>   hStdOutput <font color="blue">As</font> Long
<br>   hStdError <font color="blue">As</font> Long
<br><font color="blue">End</font> Type
<br>
<br>Private Type PROCESS_INFORMATION
<br>  hProcess <font color="blue">As</font> Long
<br>  hThread <font color="blue">As</font> Long
<br>  dwProcessID <font color="blue">As</font> Long
<br>  dwThreadID <font color="blue">As</font> Long
<br><font color="blue">End</font> Type
<br>
<br>
<br>
<br>Public Sub ExecCmd(CmdLine$)
<br>   Dim proc <font color="blue">As</font> PROCESS_INFORMATION
<br>   Dim start <font color="blue">As</font> STARTUPINFO
<br>   Dim ret <font color="blue">As</font> Long
<br>   <font color="green">' Initialize the STARTUPINFO structure:
<br>   start.cb = Len(start)
<br>   '</font> Start the shelled application:
<br>   start.dwFlags = <b><font color="darkblue">1</font></b> <font color="green">'чтоб окно было невидимым.
<br>   
<br>   ret& = CreateProcessA(0&, CmdLine$, 0&, 0&, 1&, _
<br>        NORMAL_PRIORITY_CLASS, 0&, 0&, start, proc)
<br>        
<br>   '</font> Wait <font color="blue">for</font> the shelled application to finish:
<br>   ret& = WaitForSingleObject(proc.hProcess, INFINITE)
<br>   ret& = CloseHandle(proc.hProcess)
<br><font color="blue">End</font> Sub

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


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

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

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