Hay dos formas de iniciar un programa ejecutable independiente desde un programa de Visual Basic . Una forma es utilizar el comando de Visual Basic "Shell " . La otra es utilizar la interfaz de programación de aplicaciones Windows " CreateProcess " (API ) . Ambos lanzar con éxito el programa ejecutable externo , sin embargo , " CreateProcess " proporciona al programador un mayor control sobre la forma en que el sistema operativo maneja el programa. Instrucciones
shell de comandos
1
Inicie un nuevo proyecto EXE estándar en Visual Basic . En " Form1 " que se crea de forma predeterminada , agregue un botón de comando y el nombre " cmdNotepad . "
2
Código del evento click del botón de comando en el " cmdNotepad_Click () " del evento. Declare una variable de tipo long para mantener el valor de retorno del comando Shell. Para iniciar el programa Notepad de Windows , escriba " lngReturn = Shell : " . ("C \\ Windows \\ System32 \\ Notepad.exe ) "
3
Especifique cómo desea que la aplicación Bloc de notas para abrir en el comando Shell. Las opciones son: vbHide , vbMaximizedFocus , vbMinimizedFocus , vbMinimizedNoFocus , vbNormalFocus y vbNormalNoFocus . Especifique una de estas opciones como segundo parámetro al comando Shell como " Shell (" C: \\ Windows \\ System32 \\ Notepad.exe " , vbNormalFocus ) . "
4
Obtenga el ID del proceso del valor de retorno del comando Shell. Como se muestra en el Paso 2 , " lngReturn " contendrá el identificador de proceso asignado Windows para la aplicación Bloc de notas que se acaba de lanzar desde el comando Shell. Con el proceso de identificación , puede realizar otras tareas en el programa tales como verificar si el proceso está aún en marcha antes de cerrar la aplicación de Visual Basic .
CreateProcess
5
Inicio un nuevo proyecto EXE estándar de Visual Basic . En " Form1 " que se crea de forma predeterminada , agregue un botón de comando y el nombre " cmdNotepad . " Añadir definidas por el usuario tipos con nombre " PROCESS_INFORMATION " y " STARTUPINFO " en la sección " Declaraciones " de " Form1 ". Estas estructuras se utilizan para agrupar los datos y no se requieren parámetros de la función " CreateProcess " .
6
Añada dos constantes que también son parámetros de la función " CreateProcess " .
Const SYNCHRONIZE = 1048576
Const NORMAL_PRIORITY_CLASS = & H20 & compare
Declarar funciones para crear la instancia de proceso ( " Declarar la " función " de" CreateProcess Private Declare Function CreateProcess Lib " kernel32 " Alias " CreateProcessA " "), abrir el proceso ( "Private Declare Function OpenProcess Lib" kernel32.dll ""), terminar el proceso ( "Private Declare Function TerminateProcess Lib" kernel32 "") y para cerrar el identificador ( "Private Declare Function CloseHandle Lib" kernel32 "") .
7
código del evento Click del botón de comando en " cmdNotepad_Click (). " Definir una variable de tipo PROCESS_INFORMATION , STARTUPINFO , una cadena para representar nulo y dos largos de valores de retorno . Pase el Bloc de notas. exe a la función " CreateProcess ": .
CreateProcess ( sNull , " Bloc de notas " , ByVal 0 & , ByVal 0 & , 1 & , NORMAL_PRIORITY_CLASS , ByVal 0 & , sNull , sInfo , pInfo )
8
Terminar el proceso con " TerminateProcess ( pInfo.hProcess , 0 & ) ". Cierre el asa para el hilo con " CloseHandle ( pInfo.hThread ) " y para el proceso con " CloseHandle ( pInfo.hProcess ) . " < br >