Проверка программы, запущенной через Shell - VB
Формулировка задачи:
Я использую внешнюю программу для расчётов определённого вида, при этом запускаю её через Shell(). Как мне узнать, завершила ли она работу? (после этого я буду подгружать файл с данными)
Заранее спасибо.
Решение задачи: «Проверка программы, запущенной через Shell»
textual
Листинг программы
Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessID As Long) As Long Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long Const SYNCHRONIZE = &H100000 Const WAIT_TIMEOUT = &H102 Public Sub ShellAndWait(CommandLine As String) Dim dwProcessID As Long Dim hProcess As Long dwProcessID = Shell(CommandLine, vbNormalFocus) If dwProcessID <> 0 Then hProcess = OpenProcess(SYNCHRONIZE, False, dwProcessID) If hProcess <> 0 Then Do While WaitForSingleObject(hProcess, 100) = WAIT_TIMEOUT DoEvents Loop CloseHandle hProcess End If End If End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д