Power Builder - ¿Como cerrar ventanas externas a PB ?

 
Vista:
Imágen de perfil de Antonio
Val: 176
Bronce
Ha mantenido su posición en Power Builder (en relación al último mes)
Gráfica de Power Builder

¿Como cerrar ventanas externas a PB ?

Publicado por Antonio (1271 intervenciones) el 16/05/2006 21:57:28
Hola a todos:

¿Alguien sabe como cerrar ventanas externas a PB ?...

Por ejemplo: pongamos que tengo abierto internet explorer y hay varias ventanas abiertas, lo que dese hacer es que desde PB pueda cerrar las ventanas del internet explorer.

Gracias,
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:¿Como cerrar ventanas externas a PB ?

Publicado por amilcar (35 intervenciones) el 16/05/2006 23:30:12
Por Sameer N Phatak -- [email protected]
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 llmada 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
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar