Как сделать запуск стороннего приложения - VB
Формулировка задачи:
как сделать запуск стороннего приложения.
В bat файле это выглядит вот так вот:
Решение задачи: «Как сделать запуск стороннего приложения»
textual
Листинг программы
'############### БЛОК ПРОГРАММ ОБЕСПЕЧЕНИЯ ПРОЦЕССОВ ################### '############### Позаимствовано у Брюса МакКинни ################### Const PROCESS_ALL_ACCESS = 2035711 '(&H1F0FFF) Const INFINITE = -1 '(&HFFFFFFFF) Const STILL_ACTIVE = 259 '(&H103) Const WAIT_FAILED = -1 '(&HFFFFFFFF) Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, _ ByVal bInheritHandle As Long, _ ByVal dwProcessId As Long) As Long Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, _ ByVal dwMilliseconds As Long) As Long Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, _ lpExitCode As Long) As Long Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long '::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ':::: Ожидать завершения процесса и получить код завершения ::::: '::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Function WaitOnProgram(ByVal idProg As Long, _ Optional ByVal WaitDead As Boolean) As Long Dim cRead As Long Dim iExit As Long Dim hProg As Long Dim iResult As Long '::: Получаем хэндл процесса hProg = OpenProcess(PROCESS_ALL_ACCESS, False, idProg) If (WaitDead) Then '::: Ждем до победного конца iResult = WaitForSingleObject(hProg, INFINITE) '::: Если ожидание завершилось неудачно - возбудим ошибку If (iResult = WAIT_FAILED) Then Error Err.LastDllError '::: Получаем код завершения GetExitCodeProcess hProg, iExit Else '::: Пробуем получить код завершения GetExitCodeProcess hProg, iExit '::: Если процесс все еще в состоянии выполнения, '::: не дадим системе зависнуть Do While (iExit = STILL_ACTIVE) DoEvents GetExitCodeProcess hProg, iExit Loop End If '::: Закроем хендл CloseHandle hProg WaitOnProgram = iExit End Function ':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ':::: Запустиь программу ProgName с командной строкой CmdLine, :::: ':::: получением кода завершения RC в окне стиля winStyle :::: ':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Public Sub ExecPrg(ProgName As String, _ CmdLine As String, _ RC As Integer, _ winStyle As Integer) Dim idProc As Long, iExit As Long idProg = Shell((ProgName + " " + CmdLine), winStyle) iExit = WaitOnProgram(idProg) RC = iExit End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д