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
Recibir Información De Una Ventana Que No Pertenece A Una Aplicación Gambas
Subject: Recibir Información De Una Ventana Que No Pertenece A Una Aplicación Gambas
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
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.....
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
Shell escribió:
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
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
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
¿ 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.
Pero,eso solo funciona solo una vez por cada vez que está activa la ventana de la aplicación "Fuse".
Saludos
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
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
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
No olvidarnos de hacer un refresco de las ventanas del escritorio
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:
Pues que lata. Cuando uso ayuda sobre Desktop siempre me aparece la de abajo.
Saludos
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
Subject: Re: Recibir Información De Una Ventana Que No Pertenece A Una Aplicación Gambas
Last edited by Shell on Friday, 08 May 2020, 11:44; edited 2 times in total
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
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
Decimos... comunicar datos entre dos programas....
https://www.gambas-it.org/wiki/inde...rogramma_Gambas
Shell escribió:
Decimos... comunicar datos entre dos programas....
https://www.gambas-it.org/wiki/inde...rogramma_Gambas
Page 1 of 2
You cannot post new topicsYou 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