Red de conocimiento informático - Material del sitio web - Cómo utilizar VB6.0 para escribir un programa que pueda apagar automáticamente la computadora después de ejecutar un determinado programa (por ejemplo, después de ejecutar QQ.EXE). Gracias, seré recompensado.

Cómo utilizar VB6.0 para escribir un programa que pueda apagar automáticamente la computadora después de ejecutar un determinado programa (por ejemplo, después de ejecutar QQ.EXE). Gracias, seré recompensado.

Añade el siguiente código al módulo:

Const TH32CS _ SNAPHEAPLIST = ampH1

Const TH32CS _ SNAPPROCESS = ampH4

Const TH32CS _ SNAPTHREAD = ampH4

Const TH32CS _ SNAPMODULE = ampH8

const 32 cs _ ajustar todo =(th 32 cs _ SNAPHEAPLIST o TH32CS_SNAPPROCESS o TH32CS_SNAPTHREAD o TH32CS_SNAPMODULE)

Const TH32CS _ INHERIT = ampH80000000

Const MAX_PATH es un número entero = 260

Tipo privado PROCESSENTRY32

dwSize es tan largo

cntUsage As Long

longitud del proceso th32

HeapID predeterminado de th32 tiene la misma longitud

el módulo th32 tiene la misma longitud

cntThreads tiene la misma longitud

th32ParentProcessID tiene la misma longitud

Misma longitud que pcPriClassBase

dwFlags es Long

szExeFile as String * MAX_PATH

Tipo de fin

Declaración privada Función createtoolhelp 32 instantánea Lib " kernel 32 " (ByVal lFlags es Long, ByVal lProcessID es Long) es Long

Declarar de forma privada la función proceso 32 primera Lib " kernel 32 " (ByVal hSnapShot es Long, uProcess es PROCESSENTRY32) Para Long

Declare de forma privada la función proceso 32 siguiente Lib "kernel 32" (ByVal hSnapShot es Long, uProcess es PROCESSENTRY32) para Long

Las constantes y funciones API declaradas anteriormente

Función exitproc(archivo exe ByVal como cadena) como valor booleano

Exitproc = False 'Primero asigne el procedimiento de función a False.

Dim hSnapShot es largo, uProcess es PROCESSENTRY32

hSnapShot = createtoolhelp 32 snapshot(th 32 cs _ snap all, 0 amp)' Si la llamada para crear una instantánea para el proceso del sistema tiene éxito, devuelve un identificador a la instantánea. Si la llamada falla, se devolverá invalid_handle_value.

proceso de subida. dwsize = Len(proceso de subida)

R = proceso transversal inicial del proceso32primero (hsnapshot, actualización).

Hazlo durante el descanso

if Left $(up Process . SZ exefile, IIf(InStr(1, up Process . SZ exefile, Chr $(0)) gt; 0, instr (1, update. SZ EXFILE, CHR $ (0))-1, 0) = EXFILE y luego 'intercepta a la izquierda los caracteres antes de nulo ~ es decir, la lista de procesos ~ y luego determina si existe

Exitproc = True 'Si el proceso de la función es True, este proceso existe

Salir del ciclo

Terminará si...

R = proceso 32 siguiente (hsnapshot, actualización)' recorre el siguiente proceso

Anillo

Finalizar función

El código del formulario es el siguiente: un temporizador. control y un botón (opcional)

Subcomando privado 1_Click()

Temporizador 1. Habilitado = Falso 'Detener monitoreo

Finalizar conector

Privado subform_Load.()

Timer1.Interval = 1000

Conector final

Privado subtimer1_Timer()

Si exitproc(" QQ .exe ") detecta si el proceso QQ.exe existe.

Otros

x = msgbox("Apague la computadora después de 15 segundos", vbYesNo, "Advertencia")' Pop cuadro de diálogo de inicio.

Temporizador 1. Habilitado = Falso 'Primero pausa el monitoreo del control del temporizador

Si x = vbSí Luego 'Si hace clic en el botón "Sí". el cuadro de diálogo, se cerrará

Shell "cmd /c Shutdown -s -t 15", 0

Otro

Temporizador 1 si se hace clic. No para continuar monitoreando

Finalizar si

Finalizar si

Finalizar empalme