Visual Basic - Ejecutar programa bajo MSDOS

Life is soft - evento anual de software empresarial
 
Vista:

Ejecutar programa bajo MSDOS

Publicado por Valle (84 intervenciones) el 09/05/2001 18:43:17
Necesito saber como controar que termina la ejecución de un programa lanzado con Shell bajo MSDos
Es muy importante.

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ejecutar programa bajo MSDOS

Publicado por MAURICIO E. (10 intervenciones) el 10/05/2001 08:34:51
Esperar a que un programa termine (incluso si es de MS-DOS) (32 bits) (31/Oct)

Una forma muchísimo más simplificada de la rutina que usaba hasta ahora, por supuesto, gracias al API.
Esta forma de hacerlo sólo es para 32 bits, para 16 bits lo puedes ver en: Especial Shell
La ventana se mostrará minimizada y sin foco.
No recuerdo si esta rutina la saqué de la Knowledge Base, lo que si es seguro es que fue del CD del MSDN-Library.

NOTA: Si se va a enviar un comando del DOS, se debe usar con:
Command /C <orden a ejecutar|fichero.bat>
sino, no se cerrará la ventana y el proceso no terminará, al menos algunas veces.


'Las declaraciones
Private Declare Function OpenProcess Lib "kernel32" _
(ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, _
ByVal dwProcessId As Long) As Long

Private Declare Function GetExitCodeProcess Lib "kernel32" _
(ByVal hProcess As Long, lpExitCode As Long) As Long

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Const STILL_ACTIVE = &H103
Const PROCESS_QUERY_INFORMATION = &H400

'Un procedimiento para ejecutar y esperar a que termine
Private Sub ExecCmdNoFocus(ByVal CmdLine As String)
'Esperar a que un proceso termine,
'la ventana se mostrará minimizada sin foco
Dim hProcess As Long
Dim RetVal As Long

'The next line launches CmdLine as icon,
'captures process ID
hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, False, _
Shell(CmdLine, vbMinimizedNoFocus))
Do %0
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar