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.
Const TH32CS _ SNAPHEAPLIST = ampH1
Const TH32CS _ SNAPPROCESS = ampH4
Const TH32CS _ SNAPTHREAD = ampH4 p >
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...
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