https://foro.gambas-es.org/viewtopic.php?f=1&t=8028&p=48344#p48344
-----------------------------------
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


