Active Windows

1 отговора 60 прегледа
#1

Active Windows

Niakoi znae li kod na Visual Basic, koito da proveriava za vsichki otvoreni prozorci i da rechem da gi dobavia v edin ListBox.Az se porovih malko iz internet, no ne namerih nishto tochno po tazi tema.

Отговор
в отговор на VLA #2

Re: Active Windows

Какво значи Всички отворени прозорци ? Интересуват ли те например дъщерните прозорци ?

Ако не става лесничко (доколкото си спомням). Само че в списъка ще ти дойдат и много невидими прозорци - ще трябва да им гледаш атрибутите и да ги филтрираш тези невидимите. Иначе ставаше със EnumWindows i EnumWindowsProc. Ето ти един пример от [линк] (май не си бил много настоятелен като си търсил)


'Add this code to a form
Private Sub Form_Load()
'KPD-Team 2000
'URL: [линк]
'E-Mail: [email protected]
'Set the form's graphics mode to persistent
Me.AutoRedraw = True
'call the Enumwindows-function
EnumWindows AddressOf EnumWindowsProc, ByVal 0&
End Sub
'Add this code to a module
Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Boolean
Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long
Public Function EnumWindowsProc(ByVal hwnd As Long, ByVal lParam As Long) As Boolean
Dim sSave As String, Ret As Long
Ret = GetWindowTextLength(hwnd)
sSave = Space(Ret)
GetWindowText hwnd, sSave, Ret + 1
Form1.Print Str$(hwnd) + " " + sSave
'continue enumeration
EnumWindowsProc = True
End Function

Отговор