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.
In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Cerrar una ventana ajena a nuestra aplicación
-
- Mensajes: 1310
- Registrado: Mié Sep 26, 2007 7:12 pm
- ignacio
- Site Admin
- Mensajes: 9457
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Cerrar una ventana ajena a nuestra aplicación
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.
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.
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Cerrar una ventana ajena a nuestra aplicación
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
> 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
-
- Mensajes: 1310
- Registrado: Mié Sep 26, 2007 7:12 pm
Cerrar una ventana ajena a nuestra aplicación
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.
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.
- ignacio
- Site Admin
- Mensajes: 9457
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Cerrar una ventana ajena a nuestra aplicación
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.
>
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.
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com