Sapere quando il puntatore del mouse si trova sulla finestra di un programma esterno

Da Gambas-it.org - Wikipedia.

Per sapere quando il puntatore del mouse si trova sulla finestra di un programma esterno, bisogna utilizzare la Classe DesktopWindow del Componente "gb.desktop.x11".

In particolare sarà necessario individuare il numero identificativo ("Id") della finestra del programma esterno conoscerne le dimensioni mediante la Proprietà ".Geometry()" della Classe DesktopWindow, e successivamente con il Metodo ".Contains()" sapere se le coordinate ritornate dalle Proprietà ".ScreenX" e ".ScreenY" del mouse sono comprese dallo spazio occupato dalla finestra del programma esterno sullo schermo.

Mostriamo un semplice esempio astratto, usando un ciclo infinito (potrà essere anche utilizzato ovviamente un Oggetto Timer ):

Private dw As DesktopWindow


Public Sub Form_Open()

 Me.Show

' Individua la finestra del programma esterno dal suo numero identificativo:
 dw = New DesktopWindow(numero_identificativo)

' Attivando, invece, il Componente "gb.desktop", l'individuazione della finestra del programma esterno potrà avvenire dal suo nome visibile:
' dw = Desktop.FindWindow("nome_visibile_della_finestra", Null, Null)

 Do
' Se le coordinate del mouse dall'angolo in alto sinistra dello schermo rientrano nello spazio di Scrivania occupato dalla finestra del programma esterno, allora ne mostra i valori:
   If dw.Geometry.Contains(Mouse.ScreenX, Mouse.ScreenY) Then Me.Text = CStr(Mouse.ScreenX) & "    " & CStr(Mouse.ScreenY)
' Una breve attesa è sufficiente a consentire di poter agire con il mouse sugli eventuali "Controlli" grafici posti sul "Form" del programma Gambas principale:
   Wait 0.01
 Loop

End