Cerrar todas las ventanas de IEXPLORER

Necesito que me ayudes, tengo una aplicación en power el cual tiene una ventana que permite controlar notas de un alumno por 10 minutos, necesito que es esos 10 minutos el alumno pueda acceder a intenet y pasado el tiempo se cierre también las ventanas de iexplorer que estén activas

1 Respuesta

Respuesta
1
Para cerrar una aplicación externa a power builder en este caso el iexplorer,
utiliza los api de windows, a continuación un truco que encontré en
http://www.iespana.es/powerbuilder/
La cual esta dedicada al tema de pb.
Este truco chequea si una aplicación esta en ejecución,
y si lo está la detiene.
Primero se chequea si la aplicación está en ejecución usando la llamada API
FindWindowA(). Entonces,
Si la ventana está en ejeución y el usuario quiere detenerla se usa la
llamada API PostMessageA() que muestra
la ventana de mensaje WM_QUIT para detener la aplicación.
Declaraciones de funciones externas:
FUNCTION ULong FindWindowA(ULong classname, String windowname) LIBRARY "user32.dll"
FUNCTION boolean PostMessageA(ulong hwndle,UINT wmsg,ulong wParam,ulong lParam) Library "User32.dll"
- Power Script
Ulong lul_handle, lul_class
String ls_name
// El valor hexadecimal de wm_quit es 0x0012. Convertido a valor decimal es 18.
UInt lui_quit = 18
// Pone la Clase a NULL. Esto no es obligatorio, puedes pasarle 0 también a la función FindWindowA().
SetNull(lul_class)
// Este es el código de la ventana. Por ejemplo la calculadora de Windows
ls_name = "Calculator"
// Usa la llamada API para obtener el puntero de la ventana si la aplicación está en ejecución.
lul_handle = FindWindowA(lul_class, ls_name)
IF lul_handle > 0 THEN // Si se encuentra el puntero de la ventana se muestra el mensaje wm_quit
PostMessageA(lul_handle, lui_quit, 0, 0);
return
Else
MessageBox("Aviso", "La aplicación no está en ejecución. !")
END IF
Para cerrar una aplicación de power builder simplemente utilias la función close()
Ahora que si con ella se encuentran otras ventanas abiertas, recuerda que siempre
puedes utilizar el tipo de aplicaciones MDI, en la cual existe una ventana matriz
y las demás son tipo child o hijas de esta matriz, al cerrar la matriz cierra
automáticamente las hijas.
Para condicionar el tiempo de cierre utiliza el evento TIMER(), el cual
puedes encontrar en una ventana o window, este evento es disparado cuando el tiempo
predeterminado en la tuncion timer(), es vencido, por ejemplo
En el evento CONSTRUCTOR
Podrías incluir:
Timer(10, this)
Esto indica a la ventana que debe disparar el evento timer de la misma cada 10 segundos
para anular dicho contador simplemente indicas 0 cero en los segundos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas