Tecnología

Inicio

Cómo utilizar CreateProcess en VB6

Cómo utilizar CreateProcess en VB6


"CreateProcess" es una función disponible en una de las interfaces de programación de aplicaciones de núcleo de Microsoft Windows (API) disponibles con el sistema operativo Windows. "CreateProcess" se abre un programa como un proceso de Windows y dentro de su propio hilo. API de Windows dan más flexibilidad a los programadores de VB. Por ejemplo, hay varias funciones disponibles dentro de la API de Windows que permiten a los programadores para llevar a cabo acciones específicas con una llamada a la función de la API en lugar de intentar escribir su propio código para hacer lo mismo.

Instrucciones

1 Iniciar un nuevo proyecto EXE estándar de Visual Basic. Añadir tipos definidos por el usuario llamado "PROCESS_INFORMATION" y "STARTUPINFO" en el código para "Form1" que se crea automáticamente con el nuevo proyecto. Se trata de estructuras utilizadas en Visual Basic para agrupar datos y se requieren tipos de parámetros de la función "CreateProcess".

2 Crear dos constantes que son también parámetros de la función "CreateProcess".

Const SYNCHRONIZE = 1048576

Const NORMAL_PRIORITY_CLASS = & H20 y

Declarar la función "CreateProcess" como "Private Declare Function CreateProcess Lib" kernel32 "Alias" CreateProcessA "."

3 Declarar funciones adicionales para abrir el proceso ( "Private Declare Function OpenProcess Lib" kernel32.dll ""), dar por terminado el proceso ( "" kernel32 "Private Declare Function TerminateProcess Lib") y para cerrar el identificador ( "Private Declare Function CloseHandle Lib" Kernel32 "").

4 Agregar un botón de comando "Form1" y el nombre "cmdOpenNotepad." En el código para "cmdOpenNotepad", define una variable de tipo PROCESS_INFORMATION, STARTUPINFO, una cadena para representar nulo y dos largos de valores de retorno.

Pase el Bloc de notas para la función "CreateProcess" de la siguiente manera:

CreateProcess (sNull, "Bloc de notas", ByVal 0 &, ByVal 0 &, 1 y, NORMAL_PRIORITY_CLASS, ByVal 0 &, sNull, sInfo, pInfo)

5 Terminar el proceso con "TerminateProcess (pInfo.hProcess, 0 &)."

Cierre el asa para el hilo con "CloseHandle (pInfo.hThread)" y al proceso con "CloseHandle (pInfo.hProcess)."

Consejos y advertencias

  • Cierre siempre la manija rosca y el identificador de proceso para evitar pérdidas de memoria.