Как сделать запуск стороннего приложения - VB
Формулировка задачи:
как сделать запуск стороннего приложения.
В bat файле это выглядит вот так вот:
Листинг программы
- start system\1488.exe startsalo
Решение задачи: «Как сделать запуск стороннего приложения»
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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д