Página 1 de 1
Cerrar una ventana ajena a nuestra aplicación
Publicado: Mar Jun 12, 2007 12:55 pm
por Bingen Ugaldebere
Alguien sabe si hay alguna función, programa, truco o sistema para
cerrar una Window que esta abierta pero que no es de nuestra aplicación.
En principio debería de valer tener su Handle a través de su título
(hasta aqui no hay problema)y la llamada a la función del API de Windows
DestroyWindow(nHandle) pero no soy capaz de hacerla funcionar, no hace
nada y me devuelve cero, aunque compruebo el Lasterror del sistema y me
indica ERROR_ACCESS_DENIED 5 Access is denied.
CloseWnd("DSGAviso")
#pragma BEGINDUMP
#include "windows.h"
#include "xailer.h"
XA_FUNC( GETWNDHND )
{
HWND hWnd;
hWnd = FindWindow(NULL, hb_parc( 1 ));
hb_retnl ((long) hWnd );
}
//---------------------------------------------------------- ----------------
XA_FUNC( CLOSEWND )
{
hb_retnl ((long) DestroyWindow(FindWindow(NULL, hb_parc( 1 ))) );
}
#pragma ENDDUMP
Gracias a todos.
Salu2.
Cerrar una ventana ajena a nuestra aplicación
Publicado: Mar Jun 12, 2007 12:56 pm
por ignacio
Bingen,
Prueba con SendMessage( Handle, WM_CLOSE )
Un saludo,
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"Bingen Ugaldebere" <
bingen@muninser.com> escribió en el mensaje
news:466e7b81$[email=
1@ozsrv2.ozlan.local...]
1@ozsrv2.ozlan.local...[/email]
> Alguien sabe si hay alguna función, programa, truco o sistema para cerrar
> una Window que esta abierta pero que no es de nuestra aplicación.
>
> En principio debería de valer tener su Handle a través de su título (hasta
> aqui no hay problema)y la llamada a la función del API de Windows
> DestroyWindow(nHandle) pero no soy capaz de hacerla funcionar, no hace
> nada y me devuelve cero, aunque compruebo el Lasterror del sistema y me
> indica ERROR_ACCESS_DENIED 5 Access is denied.
>
>
>
> CloseWnd("DSGAviso")
>
> #pragma BEGINDUMP
> #include "windows.h"
> #include "xailer.h"
>
> XA_FUNC( GETWNDHND )
> {
> HWND hWnd;
> hWnd = FindWindow(NULL, hb_parc( 1 ));
> hb_retnl ((long) hWnd );
> }
>
> //---------------------------------------------------------- ----------------
>
> XA_FUNC( CLOSEWND )
> {
> hb_retnl ((long) DestroyWindow(FindWindow(NULL, hb_parc( 1 ))) );
> }
>
> #pragma ENDDUMP
>
>
>
> Gracias a todos.
>
> Salu2.
Cerrar una ventana ajena a nuestra aplicación
Publicado: Mar Jun 12, 2007 12:58 pm
por jfgimenez
Bingen,
> En principio debería de valer tener su Handle a través de su título (hasta
> aqui no hay problema)y la llamada a la función del API de Windows
> DestroyWindow(nHandle) pero no soy capaz de hacerla funcionar, no hace
> nada y me devuelve cero, aunque compruebo el Lasterror del sistema y me
> indica ERROR_ACCESS_DENIED 5 Access is denied.
Aunque tengas su handle, no la puedes manipular directamente, ya que está en
otro proceso. En cambio, lo que sí se puede hacer es enviarle mensajes.
Prueba con PostMessage( Handle, WM_CLOSE ).
--
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info
Cerrar una ventana ajena a nuestra aplicación
Publicado: Mar Jun 12, 2007 4:42 pm
por Bingen Ugaldebere
Sois la leche, quien pudiera estar a vuestro nivel.
Con la solución de Ignacio funciona sin problemas.
¿De donde puedo sacar mas información sobre SendMessage o PostMessage y
sus funcionalidades?
Muchas gracias y salu2.
Cerrar una ventana ajena a nuestra aplicación
Publicado: Mar Jun 12, 2007 6:03 pm
por ignacio
Bingen,
Creo que es mejor que uses PostMessage() como te comentaba José Giménez.
Para más información:
http://msdn.microsoft.com
Un saludo
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"Bingen Ugaldebere" <
bingen@muninser.com> escribió en el mensaje
news:466eb0c2$[email=
1@ozsrv2.ozlan.local...]
1@ozsrv2.ozlan.local...[/email]
> Sois la leche, quien pudiera estar a vuestro nivel.
>
> Con la solución de Ignacio funciona sin problemas.
>
> ¿De donde puedo sacar mas información sobre SendMessage o PostMessage y
> sus funcionalidades?
>
> Muchas gracias y salu2.
>