Ottenere la schermata (screenshot) della finestra di un programma

Da Gambas-it.org - Wikipedia.

Per ottenere la schermata (screenshot) della finestra di un programma Gambas [nota 1] o di un programma esterno, si potranno utilizzare alcune risorse della Classe Desktop attivando i Componenti gb.desktop e gb.desktop.x11 .


Mostriamo un esempio, nel quale verrà effettuata un'istantanea schermata della finestra di un programma Gambas, dalla quale si otterrà un file immagine:

Public Sub Button1_Click()
 
 Dim pc As Picture
  
 pc = Desktop.Windows.FromHandle(Me.Handle).GetScreenshot(True)
   
 pc.Save("/tmp/immagine.png", 100)
  
End

In quest'altro caso, tenendo attiva la finestra di un programma esterno, se ne otterrà una schermata e quindi un relativo file immagine.
Poniamo il caso di avere attiva la finestra della calcolatrice (il nome della sua finestra è Calculator):

Public Sub Button1_Click()
 
 Dim i As Integer
 Dim pc As Picture
 
 i = Desktop.FindWindow("*Calculator*", Null, Null)[0]
  
 pc = Desktop.Windows.FromHandle(i).GetScreenshot(True)
   
 pc.Save("/tmp/immagine.png", 100)
  
End


Note