winapi - sintaxis - proceso primario y secundario la represion
¿Cómo leo el resultado estándar de un proceso secundario en VB6? (3)
Al crear un proceso en VB6 (relacionado con esta pregunta :), estoy usando la siguiente estructura:
Private 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 Long
hStdInput As Long
hStdOutput As Long
hStdError As Long
End Type
Antes de comenzar mi proceso, ¿qué debe pasar con STARTUPINFO.hStdOutput para que mi aplicación VB6 lea la salida de mi proceso alojado?
¡¡Gracias!!
Ver AttachConsole(ATTACH_PARENT_PROCESS)
Microsoft da aquí un ejemplo sobre cómo hacerlo.
Siguiendo esta otra pregunta del OP , publico un método alternativo para ejecutar un comando y obtener stdout:
'' References: "Windows Script Host Shell Object Model" ''
Public Declare Sub Sleep Lib "kernel32" Alias "Sleep" ( _
ByVal dwMilliseconds As Long)
Function ExecuteCommand(cmd As String, ExpectedResult as Long) As String
Dim shell As New IWshRuntimeLibrary.WshShell
Dim exec As IWshRuntimeLibrary.WshExec
Set exec = shell.Exec(cmd)
While exec.Status = 0
Sleep 100
Wend
If exec.ExitCode = ExpectedResult Then
ExecuteCommand = exec.StdOut.ReadAll
Else
ExecuteCommand = vbNullString '' or whatever ''
End
End Function