Allora... da un approfondimento
che nel frattempo ho compiuto, ho cominciato a districarmi un po'. Riporto, quanto verificato, a beneficio di tutti gli eventuali interessati.
Questa classe
osserva il comportamento del desktop sollevando alcuni eventi.
Facciamo
qualche esempio:
Private dw As New DesktopWatcher As "dw"
Public Sub Form_Open()
' Restituisce o imposta se l'oggetto DesktopWatcher
' guarda solo la finestra principale:
dw.RootWindow = True
End
' Se si cambia desktop, viene sollevato questo evento:
Public Sub dw_Change( )
Print "Cambio Desktop !"
End
' Questo evento viene sollevato se l'elenco delle finestre è cambiato,
' cioè se una finestra è stata aperta, chiusa, o se l'ordine di sovrapposizione è cambiato:
Public Sub dw_Windows( )
Print "Evento _Windows !"
End
...e così via.
Ne ho fatto un riassunto nella nostra WIKI:
http://www.gambas-it.org/wiki/index.php?title=Uso_della_classe_DesktopWatcher