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

Da Gambas-it.org - Wikipedia.
Riga 56: Riga 56:
 
   
 
   
 
   Dim dw As DesktopWindow
 
   Dim dw As DesktopWindow
 +
  Dim j As Byte
 
   
 
   
 
     For j = 0 To Desktop.Windows.Count - 1
 
     For j = 0 To Desktop.Windows.Count - 1

Versione delle 12:02, 30 dic 2012

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 New 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 New 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


Conoscere il nome di tutte 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 Desktop.Windows[i].VisibleName
  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
' In questo caso vediamo di ciascuna finestra sia il numero del PID (in esadecimale ed in decimale) che il Nome:
     Print Hex(.Id), .Id, .VisibleName

     End With
 
   Next

End