Differenze tra le versioni di "Individuare ID e nome delle finestre attive con le risorse del Componente gb.desktop"

Da Gambas-it.org - Wikipedia.
 
(5 versioni intermedie di uno stesso utente non sono mostrate)
Riga 11: Riga 11:
 
   
 
   
 
  End
 
  End
oppure con la combinazione della Classe ''Desktop'' del Componente ''gb.desktop'' e della Classe ''DesktopWindow'' del Componente ''gb.desktop.x11'':
+
oppure:
 +
Public Sub Button1_Click()
 +
 +
  For Each i As Integer In Desktop.FindWindow(Null, Null, Null)
 +
    With Desktop
 +
      Print Hex(i), .Windows.FromHandle(i).VisibleName
 +
    End With
 +
  Next
 +
 +
End
 +
oppure:
 +
Public Sub Button1_Click()
 +
 
 +
  Dim i As Integer
 +
 +
  For b As Byte = 0 To Desktop.FindWindow(Null, Null, Null).Max
 +
    With Desktop
 +
      i = .FindWindow(Null, Null, Null)[b]
 +
      Print i, Hex(i, 8), .Windows.FromHandle(i).VisibleName
 +
    End With
 +
  Next
 +
 +
End
 +
 
 +
 
 +
===Usando la combinazione della Classe ''Desktop'' del Componente ''gb.desktop'' e della Classe ''DesktopWindow'' del Componente ''gb.desktop.x11''===
 
  Public Sub Button1_Click()
 
  Public Sub Button1_Click()
 
   
 
   
  Dim b As Byte
 
 
   Dim dw As DesktopWindow
 
   Dim dw As DesktopWindow
 
   
 
   
   For b = 0 To Desktop.Windows.Count - 1
+
   For Each dw To Desktop.Windows
     With dw = New DesktopWindow(Desktop.Windows[b].Id)
+
     With dw
<FONT color=#006400>' ''In questo caso vediamo di ciascuna finestra sia il numero dell'ID (in esadecimale) che il Nome:''</font>
+
       Print Hex(.Id), .Name, .VisibleName
       Print Hex(.Id), .VisibleName
 
 
     End With
 
     End With
 
   Next
 
   Next
Riga 31: Riga 54:
 
   Dim dw As DesktopWindow
 
   Dim dw As DesktopWindow
 
   
 
   
   For Each wid In Desktop.FindWindow("*", Null, Null)
+
   For Each wid In Desktop.FindWindow(Null, Null, Null)
 
     With dw = New DesktopWindow(wid)
 
     With dw = New DesktopWindow(wid)
 
  <FONT color=#006400>' ''Vediamo di ciascuna finestra sia il numero dell'ID (in esadecimale) che il Nome:''</font>
 
  <FONT color=#006400>' ''Vediamo di ciascuna finestra sia il numero dell'ID (in esadecimale) che il Nome:''</font>

Versione attuale delle 16:24, 11 ott 2023

Se intendiamo conoscere il numero identificativo (ID) e il titolo di tutte le finestre presenti sul desktop, possiamo adottare il seguente codice con la Classe Desktop del Componente gb.desktop:

Public Sub Button1_Click()

 Dim b As Byte

 For b = 0 To Desktop.Windows.Count - 1
   With Desktop.Windows[b]
     Print Hex(.Id, 8), .VisibleName
   End With
 Next

End

oppure:

Public Sub Button1_Click()

 For Each i As Integer In Desktop.FindWindow(Null, Null, Null)
   With Desktop
     Print Hex(i), .Windows.FromHandle(i).VisibleName
   End With
 Next

End

oppure:

Public Sub Button1_Click()
 
 Dim i As Integer

 For b As Byte = 0 To Desktop.FindWindow(Null, Null, Null).Max
   With Desktop
     i = .FindWindow(Null, Null, Null)[b]
     Print i, Hex(i, 8), .Windows.FromHandle(i).VisibleName
   End With
 Next

End 


Usando la combinazione della Classe Desktop del Componente gb.desktop e della Classe DesktopWindow del Componente gb.desktop.x11

Public Sub Button1_Click()

 Dim dw As DesktopWindow

 For Each dw To Desktop.Windows
   With dw
     Print Hex(.Id), .Name, .VisibleName
   End With
 Next

End

o anche:

Public Sub Button1_Click()

 Dim wid As Integer
 Dim dw As DesktopWindow

 For Each wid In Desktop.FindWindow(Null, Null, Null)
   With dw = New DesktopWindow(wid)
' Vediamo di ciascuna finestra sia il numero dell'ID (in esadecimale) che il Nome:
     If Not IsNull(.VisibleName) Then Print Hex(.Id), .VisibleName
   End With
 Next

End