Autor |
Mensaje |
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Recibir Información De Una Ventana Que No Pertenece A Una Aplicación Gambas
Buenas!.
Pongamos el ejemplo de que tienes una ventana de una aplicación que es FireFox y una aplicación gambas.
¿ Es posible con la clase Desktop que se muestre el valor de las coordenadas x e y de la ventana que contiene la aplicación FireFox
en la aplicación gambas ?.
Algo como esto:
Cuando se mueve el Form Test se muestra la coordenada x e y en la barra de titulo del Form Principal.
No encontré un evento Move en la clase Desktop, si un método.
Subo el ejemplo que hice con el efecto desea
En realidad la idea es "conocer" que hace la otra ventana.
Saludos
Descripción: |
Recibir las coordenadas x e y de un form en otro |
Descargar |
Nombre del archivo: |
RecibirValoresDeOtroFormulario-0.0.1.tar.gz |
Tamaño: |
12.07 KB |
Descargado: |
47 veces |
Descripción: |
Recibir las coordenadas x e y de un form en otro |
Descargar |
Nombre del archivo: |
RecibirValoresDeOtroFormulario-0.0.1.tar.gz |
Tamaño: |
12.07 KB |
Descargado: |
47 veces |
Descripción: |
Recibir las coordenadas x e y de un form en otro |
Descargar |
Nombre del archivo: |
RecibirValoresDeOtroFormulario-0.0.1.tar.gz |
Tamaño: |
12.07 KB |
Descargado: |
47 veces |
=================== Gambas Básico
"No es un bug, es una característica no documentada"
|
#1 Martes, 05 May 2020, 21:11 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: Recibir Información De Una Ventana Que No Pertenece A Una Aplicación Gambas
Shell escribió: En realidad la idea es "conocer" que hace la otra ventana.
El asunto habla de " una ventana que no pertenece a una applicación Gambas".
Asì yo entiendo que tenemos 2 aplicaciones graficas: una de gambas y una no gambas (externa).
Bueno, hace falta conocer y extraer el ID de la ventana del programa externo (es decir del no gambas).
Para eso tienes que usar la Clase " DesktopWindow" del Componente "gb.desktop".
Exemplum clarissimum:
tenemos abiertas dos ventanas: una es de nuestra aplicación gambas, la otra es del programa editor hexadecimal "GHex".
Para gestionar la ventana del programa "GHex" con la Clase " DesktopWindow" del Componente "gb.desktop", tenemos que pasar a esta Clase el nombre del programa "GHex", y probamos con el mouse a mover o cambiar dimensión de la ventana de GHex.....
Private tm As Timer
Private dw As DesktopWindow
Public Sub Form_Open()
With tm = New Timer As "Tempus"
.Delay = 100
.Start
End With
End
Public Sub Tempus_Timer()
Dim i as Integer[]
' Con la función "Desktop.FindWindow( )" pasamos el ID de la ventana de GHex a la Clase "DesktopWindow para gestionarla":
i = Desktop.FindWindow("GHex", Null, Null)
If i.Count > 0 Then
With dw = New DesktopWindow(i[0])
Print .VisibleName, .X, .Y, .W, .H
End With
Endif
End
Public Sub Button1_Click() ' Podemos tambien mover la ventana de GHex por el desktop por ejemplo con un Botón,
' (y tambien - si queremos - cambiar su dimensión):
dw.Move(100, 100, dw.W, dw.H)
End
Public Sub Button2_Click()
' ...o ferozmente matarla: :-D
dw.Close
End
De todas formas señalo esta pagina:
https://www.gambas-it.org/wiki/inde...ogrammi_esterni
última edición por vuott el Martes, 05 May 2020, 23:41; editado 3 veces
|
#2 Martes, 05 May 2020, 23:24 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: Recibir Información De Una Ventana Que No Pertenece A Una Aplicación Gambas
Gracias Vuott.
¿ Y es necesario usar el Timer ?. Es una posibilidad, pero, debe estar constantemente buscando la ventana.
¿ Esa ventana no gambas no tiene otra forma posible de comunicarse con la ventana gambas ?.
¿ Has comprobado que pasa cuando bajas el retardo del timer ?
A mi llega a no mostrarme nada.
¿ Llegaste a ver la aplicación "xprop" para la terminal de Linux ?.
Saludos
=================== Gambas Básico
"No es un bug, es una característica no documentada"
|
#3 Viernes, 08 May 2020, 10:35 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: Recibir Información De Una Ventana Que No Pertenece A Una Aplicación Gambas
Parece que gambas no siempre encuentra la ventana. Puede ser algo del escritorio.
Por eso cambié el código al evento Activate del Form, pero no siempre tiene que funcionar.
Private dw As DesktopWindow
Private dow As DesktopWatcher
Public Sub Form_Open()
' Dim i As Integer[]
'
' i = Desktop.FindWindow("Fuse", Null, Null)
'
' dw = New DesktopWindow(i[0])
' dow = New DesktopWatcher(dw) As "Controlador"
End
Public Sub Form_Activate()
Dim i As Integer[]
i = Desktop.FindWindow("Fuse", Null, Null)
dw = New DesktopWindow(i[0])
dow = New DesktopWatcher(dw) As "Controlador"
End
Public Sub Controlador_ActiveWindow()
Print dw.X, dw.Y
dw.Refresh
End
Pero,eso solo funciona solo una vez por cada vez que está activa la ventana de la aplicación "Fuse".
Saludos
=================== Gambas Básico
"No es un bug, es una característica no documentada"
|
#4 Viernes, 08 May 2020, 11:09 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: Recibir Información De Una Ventana Que No Pertenece A Una Aplicación Gambas
=================== Gambas Básico
"No es un bug, es una característica no documentada"
|
#5 Viernes, 08 May 2020, 11:22 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: Recibir Información De Una Ventana Que No Pertenece A Una Aplicación Gambas
Solución por si gambas se despista...:-)
No olvidarnos de hacer un refresco de las ventanas del escritorio
Por cierto. Si busco la clase Desktop, no aparece la propiedad Windows...
Saludos
=================== Gambas Básico
"No es un bug, es una característica no documentada"
|
#6 Viernes, 08 May 2020, 11:31 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: Recibir Información De Una Ventana Que No Pertenece A Una Aplicación Gambas
Ah..
Esto:
http://gambaswiki.org/wiki/comp/gb.desktop/desktop?l=de&nh
No es lo mismo que:
Pues que lata. Cuando uso ayuda sobre Desktop siempre me aparece la de abajo.
Saludos
=================== Gambas Básico
"No es un bug, es una característica no documentada"
|
#7 Viernes, 08 May 2020, 11:36 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: Recibir Información De Una Ventana Que No Pertenece A Una Aplicación Gambas
Por cierto, no hablamos del componente:
gb.desktop.x11
Vaya, vaya, vaya...en alemán si que existe.
Pero no debería ser la primera lengua en inglés
Pues si que está..
http://gambaswiki.org/wiki/comp/gb.desktop/desktop?nh
¿ Entonces que le pasa a la ayuda del editor de gambas ?.
Saludos
=================== Gambas Básico
"No es un bug, es una característica no documentada"
última edición por Shell el Viernes, 08 May 2020, 11:44; editado 2 veces
|
#8 Viernes, 08 May 2020, 11:40 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: Recibir Información De Una Ventana Que No Pertenece A Una Aplicación Gambas
Shell escribió: ¿ Llegaste a ver la aplicación "xprop" para la terminal de Linux ?
Sì:
https://www.gambas-it.org/wiki/inde..._grep_-i_window
|
#9 Viernes, 08 May 2020, 15:05 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: Recibir Información De Una Ventana Que No Pertenece A Una Aplicación Gambas
Shell escribió: ¿ Esa ventana no gambas no tiene otra forma posible de comunicarse con la ventana gambas ?
Decimos... comunicar datos entre dos programas....
https://www.gambas-it.org/wiki/inde...rogramma_Gambas
|
#10 Viernes, 08 May 2020, 15:10 |
|
|
|