https://foro.gambas-es.org/viewtopic.php?f=1&t=8028
-----------------------------------
Shell
Martes, 05 May 2020, 21:11

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:

 [img]https://foro.gambas-es.org/files/images/768/dosformularios.png[/img]

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.  :roll:

Saludos


-----------------------------------
vuott
Martes, 05 May 2020, 23:24

Re: Recibir Información De Una Ventana Que No Pertenece A Una Aplicación Gambas
-----------------------------------
[quote user="Shell" post="48339"]En realidad la idea es "conocer" que hace la otra ventana.[/quote]
El asunto habla de "[i]una ventana que [u]no[/u] pertenece a una applicación Gambas[/i]".
Asì yo entiendo que tenemos [b][color=#8C0000]2[/color][/b] aplicaciones graficas: una de Gambas y una [u]no[/u] Gambas (externa).

Bueno, hace falta conocer y extraer el ID de la ventana del programa [i]externo[/i] (es decir del [u]no[/u] Gambas).
Para eso tienes que usar la Clase "[i][color=#8C0000]DesktopWindow[/color][/i]" del Componente "gb.desktop".

[i]Exemplum clarissimum[/i]:
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 "[i][color=#8C0000]DesktopWindow[/color][/i]" 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.....

[code linenumbers=false syntax=gambas]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[/code]


De todas formas señalo esta pagina:
https://www.gambas-it.org/wiki/index.php?title=Guide_della_comunit%C3%A0#Programmi_Gambas_e_programmi_esterni


-----------------------------------
Shell
Viernes, 08 May 2020, 10:35

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


-----------------------------------
Shell
Viernes, 08 May 2020, 11:09

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.

[code linenumbers=false syntax=gambas]
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
[/code]

Pero,eso solo funciona solo una vez por cada vez que está activa la ventana de la aplicación "Fuse".  

Saludos


-----------------------------------
Shell
Viernes, 08 May 2020, 11:22

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


-----------------------------------
Shell
Viernes, 08 May 2020, 11:31

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

[code linenumbers=false syntax=gambas]
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
[/code]

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

Saludos


-----------------------------------
Shell
Viernes, 08 May 2020, 11:36

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:

 [img]https://foro.gambas-es.org/files/images/768/claseestatica.png[/img]

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

Saludos


-----------------------------------
Shell
Viernes, 08 May 2020, 11:40

Re: Recibir Información De Una Ventana Que No Pertenece A Una Aplicación Gambas
-----------------------------------
Por cierto, no hablamos del componente:

gb.desktop.x11

 :roll: 

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


-----------------------------------
vuott
Viernes, 08 May 2020, 15:05

Re: Recibir Información De Una Ventana Que No Pertenece A Una Aplicación Gambas
-----------------------------------
[quote user="Shell" post="48387"]¿ Llegaste a ver la aplicación "xprop" para la terminal de Linux ?[/quote]

Sì:

   https://www.gambas-it.org/wiki/index.php?title=Individuare_ed_estrarre_l%27ID_della_finestra_di_un_programma#Uso_del_comando_xprop_.7C_grep_-i_window


-----------------------------------
vuott
Viernes, 08 May 2020, 15:10

Re: Recibir Información De Una Ventana Que No Pertenece A Una Aplicación Gambas
-----------------------------------
[quote user="Shell" post="48387"]¿ Esa ventana no Gambas no tiene otra forma posible de comunicarse con la ventana Gambas ?[/quote]
Decimos... comunicar datos entre dos programas....

   https://www.gambas-it.org/wiki/index.php?title=Guide_della_comunit%C3%A0#Trasmissione_di_dati_fra_due_programmi_Gambas_o_fra_un_programma_esterno_ed_un_programma_Gambas


-----------------------------------
jsbsan
Sabado, 09 May 2020, 09:53

Re: Recibir Información De Una Ventana Que No Pertenece A Una Aplicación Gambas
-----------------------------------
Shell:

Otra forma de que se comuniquen programas es usando socket.

En los ejemplos de gambas viene
-clientsocket
-ServerSocket


Yo use socket para programar un chat (entre mis ordenadores), y funcionaba... (pero perdi el código del chat), pero se que me base en los ejemplos anteriores


Tambien hice una aplicacion de movil que pasaba datos a un programa de gambas usando socket...
https://jsbsan.blogspot.com/2012/07/arduino-y-linux-ejemplo-de-uso-de.html


[youtube]hwP7kBOwQk4[/youtube]


-----------------------------------
jguardon
Sabado, 09 May 2020, 15:19

Re: Recibir Información De Una Ventana Que No Pertenece A Una Aplicación Gambas
-----------------------------------
Y no nos olvidemos de DBus, también soportado en Gambas.

Saludos


-----------------------------------
tercoIDE
Sabado, 09 May 2020, 17:07

Re: Recibir Información De Una Ventana Que No Pertenece A Una Aplicación Gambas
-----------------------------------
[quote user="jsbsan" post="48413"]Shell:

Otra forma de que se comuniquen programas es usando socket.

En los ejemplos de gambas viene
-clientsocket
-ServerSocket


Yo use socket para programar un chat (entre mis ordenadores), y funcionaba... (pero perdi el código del chat), pero se que me base en los ejemplos anteriores


Tambien hice una aplicacion de movil que pasaba datos a un programa de gambas usando socket...
https://jsbsan.blogspot.com/2012/07/arduino-y-linux-ejemplo-de-uso-de.html


[youtube]hwP7kBOwQk4[/youtube][/quote]


buen truco


-----------------------------------
vuott
Sabado, 09 May 2020, 18:10

Re: Recibir Información De Una Ventana Que No Pertenece A Una Aplicación Gambas
-----------------------------------
[quote user="jguardon" post="48420"]Y no nos olvidemos de DBus, también soportado en Gambas.[/quote]
Exactamente:

   https://www.gambas-it.org/wiki/index.php?title=Inviare_dati_da_un_programma_Gambas_ad_un_altro_mediante_le_risorse_del_Componente_DBus


-----------------------------------
vuott
Sabado, 09 May 2020, 18:18

Re: Recibir Información De Una Ventana Que No Pertenece A Una Aplicación Gambas
-----------------------------------
[quote user="jsbsan" post="48413"]Tambien hice una aplicacion de movil que pasaba datos a un programa de gambas usando socket...
https://jsbsan.blogspot.com/2012/07/arduino-y-linux-ejemplo-de-uso-de.html[/quote]

Los trabajos/codigos de jsbsan siempre tienen su puesto de honor en el foro de gambas-it.org: 

   https://www.gambas-it.org/smf/index.php?topic=3508


-----------------------------------
tercoIDE
Domingo, 10 May 2020, 13:44

Re: Recibir Información De Una Ventana Que No Pertenece A Una Aplicación Gambas
-----------------------------------
Un uso que se me ocurre es , cuando uso el Virtual Reality con el movil, mostrar en la pantalla de la PC lo que la persona con VR esta mirando a medida que mueve la cabeza.


-----------------------------------
Shell
Lunes, 11 May 2020, 13:59

Re: Recibir Información De Una Ventana Que No Pertenece A Una Aplicación Gambas
-----------------------------------
Gracias Julio.

Me alegro de ver que vuelves a tu afición. :-)

Saludos


-----------------------------------
jsbsan
Miercoles, 13 May 2020, 18:25

Re: Recibir Información De Una Ventana Que No Pertenece A Una Aplicación Gambas
-----------------------------------
Shell:

[quote]Me alegro de ver que vuelves a tu afición.[/quote]

Ese video es del 2012 !!! :lol:  :lol:  :lol: 


Saludos

Julio


-----------------------------------
Shell
Miercoles, 13 May 2020, 23:09

Re: Recibir Información De Una Ventana Que No Pertenece A Una Aplicación Gambas
-----------------------------------
Julio:

[quote]
Ese video es del 2012 !!! 
[/quote]

Jejeje...nunca es tarde si la dicha es buena. :-D

Vaya y yo pensaba que te había crecido el pelo.   :cry: 

Saludos


