Получение имен классов и всех заголовков активных окон
'Даный пример покажет в окне Debug информацию о классе окон открытых 'приложений и текст заголовков всех активных окон
Private Declare Function apiGetClassName Lib "user32" Alias "GetClassNameA" (ByVal Hwnd As Long, ByVal lpClassname As String, ByVal nMaxCount As Long) As Long Private Declare Function apiGetDesktopWindow Lib "user32" Alias "GetDesktopWindow" () As Long Private Declare Function apiGetWindow Lib "user32" Alias "GetWindow" (ByVal Hwnd As Long, ByVal wCmd As Long) As Long Private Declare Function apiGetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal Hwnd As Long, ByVal nIndex As Long) As Long Private Declare Function apiGetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal Hwnd As Long, ByVal lpString As String, ByVal aint As Long) As Long
Function fEnumWindows() Dim lngx As Long, lngLen As Long Dim lngStyle As Long, strCaption As String
lngx = apiGetDesktopWindow() 'Return the first child To Desktop lngx = apiGetWindow(lngx, mcGWCHILD) Do While Not lngx = 0 strCaption = fGetCaption(lngx) If Len(strCaption) > 0 Then lngStyle = apiGetWindowLong(lngx, mcGWLSTYLE) 'enum visible windows Only If lngStyle And mcWSVISIBLE Then Debug.Print "Class = " & fGetClassName(lngx), Debug.Print "Caption = " & fGetCaption(lngx) End If End If lngx = apiGetWindow(lngx, mcGWHWNDNEXT) Loop End Function
Private Function fGetClassName(Hwnd As Long) Dim strBuffer As String Dim intCount As Integer
strBuffer = String$(mconMAXLEN - 1, 0) intCount = apiGetClassName(Hwnd, strBuffer, mconMAXLEN) If intCount > 0 Then fGetClassName = Left$(strBuffer, intCount) End If End Function
Private Function fGetCaption(Hwnd As Long) Dim strBuffer As String Dim intCount As Integer
strBuffer = String$(mconMAXLEN - 1, 0) intCount = apiGetWindowText(Hwnd, strBuffer, mconMAXLEN) If intCount > 0 Then fGetCaption = Left$(strBuffer, intCount) End If End Function Private Sub Form_Load() Call fEnumWindows End Sub
Если Вас заинтересовала или понравилась информация программирование на Visual Basic - "Получение имен классов и всех заголовков активных окон", Вы можете поставить закладку в социальной сети или в своём блоге на данную страницу: Так же Вы можете задать вопрос по работе этого модуля или примера через форму обратной связи, в сообщение обязательно указывайте название или ссылку на статью!