Página 1 de 1

Ejecutar simulando multihilo. Boton para cerrar lo ejecutado

Publicado: 08 Dic 2006, 04:25
por Dbase3
Arrancar una aplicación (e.g. notepad.exe),y con un botón para cerrarla bruscamente.
Opcion 1
El botón para cerrarla es rediseñable y amigable, en un Form.
Se puede ejecutar a su vez otro código adicional que se ponga en "poner codigo aquí". Estamos simulando un multihilo (multithread).

Código: Seleccionar todo

;Author Basicos-Uten de www.autoit.es
#include <GUIConstants>
Opt("RunErrorsFatal", 0);1=fatal, 0=silent set @error
Local $pid = Run("notepad.exe", @ScriptDir, @SW_HIDE);
Local $gui = GUICreate("MI Ventana Guapa", 200, 150, 50, 50)
Local $lbl = GUICtrlCreateLabel("Esperando:: CANCELAMOS?", 15,15, 100, 50)
Local $btn = GUICtrlCreateButton("CANCEL", 15, 45, 180, 70)
GUISetState(@SW_SHOW)
While ProcessExists($pid)
 If MsgHandler() = 0 Then ProcessClose($pid)
; corre el código que quieras aquí ..............
WEnd
Func MsgHandler()
 Local $msg = GUIGetMsg()
 If $msg = -3 Or $msg = $btn Then Return 0
 Return 1
EndFunc ;==>MsgHandler
Opcion 2
Otro programa que hace más o menos lo mismo sin multihilo y con un botón standard.Conseguimos lo mismo,pero no estamos haciendo más tareas dentro de nuestro esScript.

Código: Seleccionar todo

;Author Basicos de www.autoit.es
Opt("RunErrorsFatal", 0);1=fatal, 0=silent set @error
$pid = Run("notepad.exe", @ScriptDir, @SW_HIDE)
If @error or not ProcessWait("notepad.exe", 15) Then Exit
if MsgBox(3, "Mi Autoit", "Esperando:: CANCELAMOS?, El notepad sigue")=6  then ProcessClose("notepad.exe")