Страница: 1 |
Знаю кусок текста в заголовке окна, а как получить Хэндл того самого окна, например Окно в винампе имеет заголовок: 1. песня1 - Winamp Как найти hwnd Winamp'a зная, только кусок текста, тоесть, только то что там есть слово Winamp
1) Используй WinApi - EnumWindows. 2) В CallBack-функции используешь GetWindowText и получаешь полный заголовок окна, возврашенного перичислителем(EnumWindows) 3) Используя InStr сравниваешь заголовок из п.2 со своим шаблоном. Если это оно, сохраняешь его hWnd. В принципе все не так сложно. Я в свое время заморачивался этим, но не могу найти исходник. Вот пример с какого-то сайта, не помню, ну в общем отображение сказанного выше... Страница: 1 |
Вопрос: Зная кусок заголовка окна, получить его Hwnd
Добавлено: 13.03.04 00:47
Автор вопроса: Domod
Ответы
Всего ответов: 2
Номер ответа: 1
Автор ответа:
DenB
Вопросов: 1
Ответов: 4
Профиль | | #1
Добавлено: 13.03.04 01:58
Номер ответа: 2
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #2
Добавлено: 13.03.04 09:37
Private Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Long, ByVal lpData 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 GetParent Lib "user32" (ByVal hWnd As Long) As Long
Dim lngWinText As Long, sBuffer As String
sBuffer = String$(&HFF, &H0)
sBuffer = Left(sBuffer, InStr(1&, sBuffer, vbNullChar) - 1&)
If lpData = &H0 Then sBuffer = LCase(sBuffer)
hFind = hWnd
EnumWinProc = False: Exit Function
End If
End If
End If
End Function
sPattern = sWild
hFind = &H0
FindWindowWild = hFind
End Function