non è ancora perfetto ma deve essere una buona base di partenza
in effetti c'è dal risolvere il problema delle finestre visible ma non visibilicodice:Option Explicit Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _ (ByVal lpClassName As String, _ ByVal lpWindowName As String) As Long Private Declare Function GetWindow Lib "user32" _ (ByVal hwnd As Long, ByVal wCmd As Long) As Long Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" _ (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long Private Declare Function IsWindowVisible Lib "user32" (ByVal hwnd As Long) As Long Const GW_HWNDNEXT = 2 Private Sub Form_activate() Dim lTrayHwnd As Long Dim lChildHwnd As Long Dim sSave As String 'trova l'handle della barra lTrayHwnd = FindWindow("Shell_traywnd", vbNullString) lChildHwnd = Me.hwnd Do Until lChildHwnd = 0 sSave = Space$(255) Call GetWindowText(lChildHwnd, sSave, 255) sSave = Trim$(sSave) sSave = Mid$(sSave, 1, Len(sSave) - 1) If Len(Trim$(sSave)) > 1 Then If IsWindowVisible(lChildHwnd) > 0 Then List1.AddItem Trim$(sSave) End If End If lChildHwnd = GetWindow(lChildHwnd, GW_HWNDNEXT) Me.Refresh Loop End Sub

Rispondi quotando