Differenze tra le versioni di "Uso della classe DesktopWatcher"

Da Gambas-it.org - Wikipedia.
Riga 25: Riga 25:
 
   End With
 
   End With
 
   
 
   
  '''End'''
+
  '''End'''  
 
 
   
 
   
 
  <FONT color=gray>' ''Se avvengono dei cambiamenti all'interno del desktop, ma anche:''
 
  <FONT color=gray>' ''Se avvengono dei cambiamenti all'interno del desktop, ma anche:''
Riga 39: Riga 38:
 
   
 
   
 
   
 
   
  <FONT color=gray>' ''Se si cambia desktop, ossia se si passa ad un altro desktop dello schermo,''
+
  <FONT color=gray>' ''Se si cambia desktop, ossia se si passa ad un altro desktop dello schermo, allora viene sollevato questo evento:</font>
' ''allora viene sollevato questo evento:</font>
 
 
  '''Public''' Sub dw_Change( )
 
  '''Public''' Sub dw_Change( )
 
    
 
    
Riga 48: Riga 46:
 
   
 
   
 
   
 
   
  <FONT color=gray>' ''Questo evento viene sollevato se l'elenco delle finestre è cambiato,''
+
  <FONT color=gray>' ''Questo evento viene sollevato se l'elenco delle finestre è cambiato, cioè se una finestra è stata aperta, chiusa, o se l'ordine di sovrapposizione è cambiato:''</font>
' ''cioè se una finestra è stata aperta, chiusa, o se l'ordine di sovrapposizione è cambiato:''</font>
 
 
  '''Public''' Sub dw_Windows( )
 
  '''Public''' Sub dw_Windows( )
 
    
 
    
Riga 57: Riga 54:
  
  
In quest'altro esempio verrà sollevato l'evento "''_WindowGeometry( )''" della Classe "''DesktopWatcher''", qualora venga modificata una dimensione della finestra del programma:
+
In quest'altro esempio verrà sollevato l'evento "_WindowGeometry()" della Classe ''DesktopWatcher'', qualora venga modificata una dimensione della finestra del programma:
 
  Private dwt As DesktopWatcher
 
  Private dwt As DesktopWatcher
 
   
 
   
Riga 65: Riga 62:
 
   dwt = New DesktopWatcher As "DesktopWatcher"
 
   dwt = New DesktopWatcher As "DesktopWatcher"
 
    
 
    
  '''End'''
+
  '''End'''  
 
 
   
 
   
 
  '''Public''' Sub DesktopWatcher_WindowGeometry(dwd As DesktopWindow)
 
  '''Public''' Sub DesktopWatcher_WindowGeometry(dwd As DesktopWindow)
Riga 75: Riga 71:
  
  
In quest'altro esempio si utilizzerà l'Evento "_Windows" della Classe "DesktopWatcher", per osservare l'apertura della finestra di Dialogo utile per caricare un file.
+
In quest'altro esempio si utilizzerà l'Evento "_Windows" della Classe ''DesktopWatcher'', per osservare l'apertura della finestra di Dialogo utile per caricare un file.
 
<BR>In tal caso il "Titolo" della finestra di Dialogo ".OpenFile" dovrà essere "certo" e "univoco".
 
<BR>In tal caso il "Titolo" della finestra di Dialogo ".OpenFile" dovrà essere "certo" e "univoco".
 
  Private wa As DesktopWatcher
 
  Private wa As DesktopWatcher

Versione delle 17:55, 24 apr 2023

La classe DesktopWatcher osserva il desktop sullo schermo. Essa consente all'utente di essere in grado di rilevare l'attività dello schermo con i gestori di eventi:

variabileTipoDesktopWatcher_nomeEvento(parametro-eventuale).

DesktopWatcher solleva i seguenti eventi:

  • _ActiveWindow: l'evento è sollevato se si cambia desktop, ossia se si passa ad un altro desktop dello schermo; e se la finestra attiva è cambiata. Per sapere ora quale è, usare Desktop.ActiveWindow .
  • _Change: il desktop virtuale corrente è cambiato.
  • _Count: il numero dei desktop virtuali è cambiato.
  • _Geometry: la geometria del desktop è mutata.
  • _WindowGeometry: l'evento è sollevato, se una specifica finestra è stata spostata o ridimensionata.
  • _WindowIcon: l'evento è sollevato, se l'icona di una specifica finestra è cambiata.
  • _WindowName: l'evento è sollevato, se il nome o il nome visibile di una specifica finestra è cambiato.
  • _WindowState: l'evento è sollevato, se lo stato di una specifica finestra è cambiato.
  • _Windows: l'evento viene sollevato se l'elenco delle finestre è cambiato, cioè se una finestra è stata aperta, chiusa, o se l'ordine di sovrapposizione è cambiato. Per scorrere la lista e vedere quali finestre vi sono, usare Desktop.Windows .


Esempi pratici

Private dw As DesktopWatcher


Public Sub Form_Open()

 With dw = New DesktopWatcher(Me) As "dw"
' Restituisce o imposta se l'oggetto DesktopWatcher guarda solo la finestra principale:
   .RootWindow = True
 End With

End 

' Se avvengono dei cambiamenti all'interno del desktop, ma anche:
' se si cambia desktop, ossia se si passa ad un altro desktop dello schermo;
' se viene spostato il focus da una finestra di un programma alla finestra di un altro programma;
' allora viene sollevato questo evento:
Public Sub dw_ActiveWindow( )
 
  TextArea1.Text &= "Modifica all'interno del Desktop !\n"
 
End


' Se si cambia desktop, ossia se si passa ad un altro desktop dello schermo, allora viene sollevato questo evento:
Public Sub dw_Change( )
 
  TextArea1.Text &= "Cambio Desktop !\n"
 
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( )
 
  TextArea1.Text &= "Evento _Windows !\n"
 
End


In quest'altro esempio verrà sollevato l'evento "_WindowGeometry()" della Classe DesktopWatcher, qualora venga modificata una dimensione della finestra del programma:

Private dwt As DesktopWatcher


Public Sub Form_Open()
 
 dwt = New DesktopWatcher As "DesktopWatcher"
 
End 

Public Sub DesktopWatcher_WindowGeometry(dwd As DesktopWindow)

 Print dwd.W, dwd.H
  
End


In quest'altro esempio si utilizzerà l'Evento "_Windows" della Classe DesktopWatcher, per osservare l'apertura della finestra di Dialogo utile per caricare un file.
In tal caso il "Titolo" della finestra di Dialogo ".OpenFile" dovrà essere "certo" e "univoco".

Private wa As DesktopWatcher
Private dw As DesktopWindow


Public Sub Form_Open()
 
' Osserva tutte le finestre, presenti e quelle eventuali future, sulla Scrivania:
 wa = New DesktopWatcher As "DWatch"
  
End

Public Sub Button1_Click()
 
 With Dialog
' Il "Titolo" della finestra di Dialo deve essere certo e univoco.
' (In questo esempio è impostato il titolo: Abcde).
   .Title = "Abcde"
   If .OpenFile() Then Return 
 End With
 
End

Public Sub DWatch_Windows()  ' Se la l'elenco delle finestre aperte sulla Scrivania è cambiato...
 
' ...allora si verifica se si è aperta proprio la finestra "Abcde":
 If Desktop.FindWindow("Abcde", Null, Null).Count > 0 Then 
' Se è così, allora la finestra di Dialogo, avente Titolo "Abcde", viene ridimensionata:
   With dw = New DesktopWindow(Desktop.FindWindow("Abcde", Null, Null)[0])
     .Resize(Screen.AvailableWidth, Screen.AvailableHeight)
   End With
 Endif 
 
End