Differenze tra le versioni di "Individuare il nome della finestra di un programma"

Da Gambas-it.org - Wikipedia.
(Uso della Classe DesktopWindow)
Riga 1: Riga 1:
 
Di seguito sono esposti vari modi per conoscere il nome della finestra di un programma.
 
Di seguito sono esposti vari modi per conoscere il nome della finestra di un programma.
 
 
 
 
=Uso della Classe ''FMain'' o la parola ''Me''=
 
=Uso della Classe ''FMain'' o la parola ''Me''=
 
L'uso della Classe ''FMain'' o della parola ''Me'' è senz'altro il metodo più veloce per conoscere il nome della finestra del programma principale:
 
L'uso della Classe ''FMain'' o della parola ''Me'' è senz'altro il metodo più veloce per conoscere il nome della finestra del programma principale:
  '''Public''' Sub Button2_Click()
+
  Public Sub Button1_Click()
 
   
 
   
  Print FMain.Title
+
  Print FMain.Title
 
   
 
   
  '''End'''
+
  End
  
  
=Uso del Metodo ''.GetWindowProperty( )'' della Classe ''x11''=
+
=Uso del Metodo ".GetWindowProperty()" della Classe ''x11''=
Conoscendo il numero identificativo della ''finestra'' del programma, possiamo ottenerne il nome usando il Metodo ''.GetWindowProperty( )'' della Classe ''x11'', per la quale si dovrà attivare il Componente "''gb.desktop.x11''".
+
Conoscendo il numero identificativo della ''finestra'' del programma, possiamo ottenerne il nome usando il Metodo ".GetWindowProperty()" della Classe ''x11'', per la quale si dovrà attivare il Componente ''gb.desktop.x11''.
 
<BR>In particolare si dovrà inserire nel primo parametro del predetto Metodo il numero identificativo della finestra (di cui vogliamo ottenere il nome) e nel secondo parametro la costante di tipo stringa "''WM_NAME''" che rappresenta il nome del tipo di proprietà riferita ad una finestra x11.
 
<BR>In particolare si dovrà inserire nel primo parametro del predetto Metodo il numero identificativo della finestra (di cui vogliamo ottenere il nome) e nel secondo parametro la costante di tipo stringa "''WM_NAME''" che rappresenta il nome del tipo di proprietà riferita ad una finestra x11.
  
 
Mostriamo un esempio pratico:
 
Mostriamo un esempio pratico:
  '''Public''' Sub Button1_Click()
+
  Public Sub Button1_Click()
 
   
 
   
 
   Dim id As Integer
 
   Dim id As Integer
 
    
 
    
  id = <FONT Color=gray>''id_della_finestra''</font>
+
  id = <FONT Color=gray>''id_della_finestra''</font>
 
    
 
    
  Print "Titolo della finestra: "; X11.GetWindowProperty(id, "WM_NAME")
+
  Print "Titolo della finestra: "; X11.GetWindowProperty(id, "WM_NAME")
 
    
 
    
  '''End'''
+
  End
  
  
Riga 32: Riga 29:
 
E' possibile ottenere il nome della finestra del programma ''principale'' usando due proprietà della classe ''DesktopWindow''.
 
E' possibile ottenere il nome della finestra del programma ''principale'' usando due proprietà della classe ''DesktopWindow''.
  
==Uso della proprietà ''.VisibleName''==
+
==Uso della Proprietà ".VisibleName"==
La proprietà .''VisibleName'' restituisce il nome della finestra visibile, vale a dire il titolo della finestra come visualizzato dal gestore di finestre.
+
La Proprietà ".VisibleName" restituisce il nome della finestra visibile, vale a dire il titolo della finestra come visualizzato dal gestore di finestre.
  
 
E' il caso di ricordare che il nome visibile della finestra può essere diverso dal nome del programma, quando due o più finestre hanno lo stesso nome.
 
E' il caso di ricordare che il nome visibile della finestra può essere diverso dal nome del programma, quando due o più finestre hanno lo stesso nome.
  '''Public''' Sub Button1_Click()
+
  Public Sub Button1_Click()
 
   
 
   
 
   Dim s As String
 
   Dim s As String
Riga 42: Riga 39:
 
   
 
   
 
  <FONT color=#006400>' ''Individuiamo la finestra attiva corrente di primo livello, di cui raccogliere il nome:''</font>
 
  <FONT color=#006400>' ''Individuiamo la finestra attiva corrente di primo livello, di cui raccogliere il nome:''</font>
    dw = New DesktopWindow(Desktop.ActiveWindow)
+
  dw = New DesktopWindow(Desktop.ActiveWindow)
 
    
 
    
    s = dw.<FONT color=#B22222>VisibleName</font>
+
  s = dw.<FONT color=#B22222>VisibleName</font>
 
   
 
   
    Print s
+
  Print s
 
    
 
    
  '''End'''
+
  End
  
  
 
+
==Uso della Proprietà ".Name"==
==Uso della proprietà ''.Name''==
+
Si potrà utilizzare anche la Proprietà ".Name", la quale estituisce il nome della finestra come specificata dall'applicazione a cui appartiene quella finestra.
Si potrà utilizzare anche la proprietà "''.Name''", la quale estituisce il nome della finestra come specificata dall'applicazione a cui appartiene quella finestra.
+
  Public Sub Button1_Click()
  '''Public''' Sub Button1_Click()
 
 
   
 
   
 
   Dim s As String
 
   Dim s As String
Riga 60: Riga 56:
 
   
 
   
 
  <FONT color=#006400>' ''Individuiamo la finestra attiva corrente di primo livello, di cui raccogliere il nome:''</font>
 
  <FONT color=#006400>' ''Individuiamo la finestra attiva corrente di primo livello, di cui raccogliere il nome:''</font>
    dw = New DesktopWindow(Desktop.ActiveWindow)
+
  dw = New DesktopWindow(Desktop.ActiveWindow)
 
    
 
    
    s = dw.<FONT color=#B22222>Name</font>
+
  s = dw.<FONT color=#B22222>Name</font>
 
   
 
   
    Print s
+
  Print s
 
    
 
    
  '''End'''
+
  End
 +
 
  
=Uso della proprietà ''Application.ActiveWindow'' e della Classe Window=
+
=Uso della Proprietà "Application.ActiveWindow" e della Classe Window=
Per conoscere il nome della ''finestra'' attiva (cioè ove è posto un ''Controllo'' in quel momento attivo) del programma principale, si potrà utilizzare la proprietà ''.ActiveWindow'' della Classe ''Application'' congiuntamente con la Classe ''Window''. In tal modo sarà possibile gestire la finestra atttiva del programma come un oggetto ''Window'':
+
Per conoscere il nome della ''finestra'' attiva (cioè ove è posto un ''Controllo'' in quel momento attivo) del programma principale, si potrà utilizzare la Proprietà ".ActiveWindow" della Classe ''Application'' congiuntamente con la Classe ''Window''. In tal modo sarà possibile gestire la finestra atttiva del programma come un oggetto ''Window'':
  '''Public''' Sub Button2_Click()
+
  Public Sub Button2_Click()
 
    
 
    
 
   Dim w As Window
 
   Dim w As Window
 
   
 
   
    w = Application.ActiveWindow
+
  w = Application.ActiveWindow
 
    
 
    
    With w
+
  With w
 
  <FONT color=#006400>' ''Vediamo l'ID della "finestra" attiva del programma:''</font>
 
  <FONT color=#006400>' ''Vediamo l'ID della "finestra" attiva del programma:''</font>
      Print .Id, Hex(.Id)
+
    Print .Id, Hex(.Id)
  <FONT color=#006400>' ''Vediamo il nome del programma:''</font>
+
<FONT color=#006400>' ''Vediamo il nome del programma:''</font>
      Print .Name
+
    Print .Name
 
  <FONT color=#006400>' ''Vediamo il nome della "finestra" attiva del programma:''</font>
 
  <FONT color=#006400>' ''Vediamo il nome della "finestra" attiva del programma:''</font>
      Print .Title
+
    Print .Title
    End With
+
   End With
 
'''End'''
 
 
 
 
 
 
 
=Conoscere il nome di <SPAN style="text-decoration:underline">tutte</span> le finestre attive presenti sul desktop=
 
Se, invece, intendiamo conoscere il titolo di tutte le finestre presenti sul desktop, basterà usare la funzione ''Desktop.Windows[n].VisibleName'':
 
'''Public''' Sub Button1_Click()
 
 
  Dim i As Integer
 
 
 
  For i = 0 To Desktop.Windows.Count - 1
 
    Print <FONT color=#B22222>Desktop.Windows[i].VisibleName</font>
 
  Next
 
 
'''End'''
 
 
 
 
 
oppure con la combinazione della Classe ''Desktop'' e la Classe ''DesktopWindow'':
 
'''Public''' Sub Button1_Click()
 
 
  Dim dw As DesktopWindow
 
   Dim j As Byte
 
 
    For j = 0 To Desktop.Windows.Count - 1
 
 
 
      dw = New DesktopWindow(Desktop.Windows[j].Id)
 
      With dw
 
<FONT color=#006400>' ''In questo caso vediamo di ciascuna finestra sia il numero dell'ID (in esadecimale ed in decimale) che il Nome:''</font>
 
      Print Hex(.Id), .Id, .VisibleName
 
 
      End With
 
 
 
    Next
 
 
   
 
   
  '''End'''
+
  End

Versione delle 17:54, 24 set 2023

Di seguito sono esposti vari modi per conoscere il nome della finestra di un programma.

Uso della Classe FMain o la parola Me

L'uso della Classe FMain o della parola Me è senz'altro il metodo più veloce per conoscere il nome della finestra del programma principale:

Public Sub Button1_Click()

 Print FMain.Title

End


Uso del Metodo ".GetWindowProperty()" della Classe x11

Conoscendo il numero identificativo della finestra del programma, possiamo ottenerne il nome usando il Metodo ".GetWindowProperty()" della Classe x11, per la quale si dovrà attivare il Componente gb.desktop.x11.
In particolare si dovrà inserire nel primo parametro del predetto Metodo il numero identificativo della finestra (di cui vogliamo ottenere il nome) e nel secondo parametro la costante di tipo stringa "WM_NAME" che rappresenta il nome del tipo di proprietà riferita ad una finestra x11.

Mostriamo un esempio pratico:

Public Sub Button1_Click()

 Dim id As Integer
 
 id = id_della_finestra
 
 Print "Titolo della finestra: "; X11.GetWindowProperty(id, "WM_NAME")
  
End


Uso della Classe DesktopWindow

E' possibile ottenere il nome della finestra del programma principale usando due proprietà della classe DesktopWindow.

Uso della Proprietà ".VisibleName"

La Proprietà ".VisibleName" restituisce il nome della finestra visibile, vale a dire il titolo della finestra come visualizzato dal gestore di finestre.

E' il caso di ricordare che il nome visibile della finestra può essere diverso dal nome del programma, quando due o più finestre hanno lo stesso nome.

Public Sub Button1_Click()

 Dim s As String
 Dim dw As DesktopWindow

' Individuiamo la finestra attiva corrente di primo livello, di cui raccogliere il nome:
 dw = New DesktopWindow(Desktop.ActiveWindow)
 
 s = dw.VisibleName

 Print s
 
End


Uso della Proprietà ".Name"

Si potrà utilizzare anche la Proprietà ".Name", la quale estituisce il nome della finestra come specificata dall'applicazione a cui appartiene quella finestra.

Public Sub Button1_Click()

 Dim s As String
 Dim dw As DesktopWindow

' Individuiamo la finestra attiva corrente di primo livello, di cui raccogliere il nome:
 dw = New DesktopWindow(Desktop.ActiveWindow)
 
 s = dw.Name

 Print s
 
End


Uso della Proprietà "Application.ActiveWindow" e della Classe Window

Per conoscere il nome della finestra attiva (cioè ove è posto un Controllo in quel momento attivo) del programma principale, si potrà utilizzare la Proprietà ".ActiveWindow" della Classe Application congiuntamente con la Classe Window. In tal modo sarà possibile gestire la finestra atttiva del programma come un oggetto Window:

Public Sub Button2_Click()
 
 Dim w As Window

 w = Application.ActiveWindow
  
 With w
' Vediamo l'ID della "finestra" attiva del programma:
   Print .Id, Hex(.Id)
' Vediamo il nome del programma:
   Print .Name
' Vediamo il nome della "finestra" attiva del programma:
   Print .Title
 End With

End