Active Windows
3 отговора
175 прегледа
Active Windows
Znaete li kod na Visual Basic, koito da proveriava koi sa aktivnite prozorci v momenta(toest koi sa startirani) i da rechem da gi dobavia v niakoi ListBox?
Re: Active Windows
Ами, аз не съм напреднал дотолкова, въпреки че би трябвало да е елементарно. Всичко което може Windows, може да бъде направено с API функция, но лично не знам коя. Може да се поровим по сайтовете, но това е бавен процес.
Трябва да развием малко клуба, да се съберат хора, и да не се налага на двама души да решават един и същи проблем 2 пъти.
----------------------------------
помислих, хареса ми, помислих пак...
Трябва да развием малко клуба, да се съберат хора, и да не се налага на двама души да решават един и същи проблем 2 пъти.
----------------------------------
помислих, хареса ми, помислих пак...
Re: Active Windows
Писах го и във Програмисти ама видях че има и Visual Baasic вече ;))
Какво значи Всички отворени прозорци ? Интересуват ли те например дъщерните прозорци ?
Ако не става лесничко (доколкото си спомням). Само че в списъка ще ти дойдат и много невидими прозорци - ще трябва да им гледаш атрибутите и да ги филтрираш тези невидимите. Иначе ставаше със 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
Какво значи Всички отворени прозорци ? Интересуват ли те например дъщерните прозорци ?
Ако не става лесничко (доколкото си спомням). Само че в списъка ще ти дойдат и много невидими прозорци - ще трябва да им гледаш атрибутите и да ги филтрираш тези невидимите. Иначе ставаше със 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