Вызов программы с программы (с ключем) - VB
Формулировка задачи:
Проблема следующего характера нужно чтобы при нажатии на кнопку вызывалась программа 'sndrec32.exe' с определенными ключами, а конкретнее запись файла по указанному пути. При повторном нажатии запись прерывалась. Путь к файлу берется из ComboBox. Заранее благодарю.
Решение задачи: «Вызов программы с программы (с ключем)»
textual
Листинг программы
Const STILL_ACTIVE = &H103& Type STARTUPINFO cb As Long lpReserved As String lpDesktop As String lpTitle As String dwX As Long dwY As Long dwXSize As Long dwYSize As Long dwXCountChars As Long dwYCountChars As Long dwFillAttribute As Long dwFlags As Long wShowWindow As Integer cbReserved2 As Integer lpReserved2 As Byte hStdInput As Long hStdOutput As Long hStdError As Long End Type Type PROCESS_INFORMATION hProcess As Long hThread As Long dwProcessId As Long dwThreadId As Long End Type Declare Function CreateProcessA Lib 'kernel32' (ByVal _ lpApplicationName As Long, ByVal lpCommandLine As String, ByVal _ lpProcessAttributes As Long, ByVal lpThreadAttributes As Long, _ ByVal bInheritHandles As Long, ByVal dwCreationFlags As Long, _ ByVal lpEnvironment As Long, ByVal lpCurrentDirectory As Long, _ lpStartupInfo As STARTUPINFO, lpProcessInformation As _ PROCESS_INFORMATION) As Long Declare Function GetExitCodeProcess Lib 'kernel32' _ (ByVal hProcess As Long, lpExitCode As Long) As Long '//hProcess - это идентификатор процесса, создаваемого CreateProcess, _ берется из PROCESS_INFORMATION, проверять в цикле, _ если в lpExitCode = 0 - процесс завершен, _ либо, пока lpExitCode = STILL_ACTIVE, процесс активен. Public Function RUN_PROC(EXEC_PATH As String, _ ByRef hProcess As Long) As Integer Dim PI As PROCESS_INFORMATION Dim SI As STARTUPINFO Dim I As Integer SI.cb = Len(SI) I = CreateProcessA(0&, EXEC_PATH, 0&, 0&, 1&, &H20&, 0&, 0&, SI, PI) If I = 0 Then hProcess = -1 RUN_PROC = -1 Exit Function End If hProcess = PI.hProcess RUN_PROC = 0 End Function Public Function WAIT_FOR_TERM(hProcess As Long) As Integer Dim lpExitCode As Long lpExitCode = STILL_ACTIVE DoEvents While lpExitCode = STILL_ACTIVE GetExitCodeProcess hProcess, lpExitCode Wend WAIT_FOR_TERM = lpExitCode End Function
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д