Recibir Información De Una Ventana Que No Pertenece A Una Aplicación Gambas


Goto page 1, 2  Next

Subject: 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:

dosformularios

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


RecibirValoresDeOtroFormulario-0.0.1.tar.gz
Description: Recibir las coordenadas x e y de un form en otro 
Download
Filename: RecibirValoresDeOtroFormulario-0.0.1.tar.gz
Filesize: 12.07 KB
Downloaded: 50 Time(s)
RecibirValoresDeOtroFormulario-0.0.1.tar.gz
Description: Recibir las coordenadas x e y de un form en otro 
Download
Filename: RecibirValoresDeOtroFormulario-0.0.1.tar.gz
Filesize: 12.07 KB
Downloaded: 50 Time(s)
RecibirValoresDeOtroFormulario-0.0.1.tar.gz
Description: Recibir las coordenadas x e y de un form en otro 
Download
Filename: RecibirValoresDeOtroFormulario-0.0.1.tar.gz
Filesize: 12.07 KB
Downloaded: 50 Time(s)

Subject: 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

Last edited by vuott on Tuesday, 05 May 2020, 23:41; edited 3 times in total
Profile PM  
Subject: 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

Subject: 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

Subject: Re: Recibir Información De Una Ventana Que No Pertenece A Una Aplicación Gambas
Algo más de información:

https://gambas-buch.de/dwen/doku.php?id=k15:k15.4:start

Saludos

Subject: 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

Public Sub Form_Open()

Dim i As Integer[]

i = Desktop.FindWindow("Fuse", Null, Null)

Desktop.Windows.Refresh
dw = New DesktopWindow(i[0])
dow = New DesktopWatcher(dw) As "Controlador"

End


Por cierto. Si busco la clase Desktop, no aparece la propiedad Windows...

Saludos

Subject: 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:

claseestatica

Pues que lata. Cuando uso ayuda sobre Desktop siempre me aparece la de abajo.

Saludos

Subject: 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

Last edited by Shell on Friday, 08 May 2020, 11:44; edited 2 times in total
Subject: 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

Profile PM  
Subject: 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

Profile PM  
Goto page 1, 2  Next

Page 1 of 2


  
You cannot post new topics
You cannot reply to topics
You cannot edit your posts
You cannot delete your posts
You cannot vote in polls
You cannot attach files
You can download files
You cannot post calendar events

   

This is a "Lo-Fi" version of our main content. To view the full version with more information, formatting and images, please click here.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Generation Time: 0.1367s (PHP: -4% SQL: 104%)
SQL queries: 27 - Debug Off - GZIP Enabled