Страница: 1 |
Приветствую уважаемые! У меня вопрос. Как прочитать текст окна службы Messenger Service? Это окно появляется с приходом нового сообщения, отправленного по локалке с помощью команды Net Send... Это окно ищется, допустим, с помощью API EnumWindowsProc & FindWindow... А как считать текст в переменную (TextBox) ? Надеюсь на вашу поддержку!
А может просто сканить все элементы той формы на Caption? 2Александр: Каким образом? Вообще этот вопрос оказывается уже обсуждался на этом форуме, но ответа так и не было... Может кто подскажет? hwnd найденного окна (класса) сунуть в функцию - она покажет остальное инфо Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long Private Const GW_CHILD = 5 Private Const GW_HWNDNEXT = 2 Public Function WindowInfo(window_hwnd As Long) As String Dim txt As String Dim buf As String Dim buflen As Long Dim child_hwnd As Long Dim children As Collection Dim i As Integer ' Get the class name. buflen = 256 buf = Space$(buflen - 1) buflen = GetClassName(window_hwnd, buf, buflen) buf = Left$(buf, buflen) txt = "Class: " & buf & vbCrLf ' hWnd. txt = txt & " hWnd: " & _ Format$(window_hwnd) & vbCrLf ' Associated text. txt = txt & " Text: [" & _ WindowText(window_hwnd) & "]" & vbCrLf ' Make a list of the child windows. Set children = New Collection child_hwnd = GetWindow(window_hwnd, GW_CHILD) Do While child_hwnd <> 0 children.Add child_hwnd child_hwnd = GetWindow(child_hwnd, GW_HWNDNEXT) Loop ' Get information on the child windows. For i = 1 To children.Count txt = txt & WindowInfo(children(i)) Next i WindowInfo = txt End Function К тому же (чтоб работало): Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long Private Const WM_GETTEXT = &HD Private Const WM_GETTEXTLENGTH = &HE Public Function ClassName(ByVal lHwnd As Long) As String Dim lLen As Long Dim sBuf As String lLen = 260 sBuf = String$(lLen, 0) lLen = GetClassName(lHwnd, sBuf, lLen) If (lLen <> 0) Then ClassName = Left$(sBuf, lLen) End If End Function Public Function WindowText(window_hwnd As Long) As String Dim txtlen As Long Dim txt As String WindowText = "" If window_hwnd = 0 Then Exit Function txtlen = SendMessage(window_hwnd, WM_GETTEXTLENGTH, 0, 0) If txtlen = 0 Then Exit Function txtlen = txtlen + 1 txt = Space$(txtlen) txtlen = SendMessage(window_hwnd, WM_GETTEXT, txtlen, ByVal txt) WindowText = Left$(txt, txtlen) End Function Public Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long Ботать доки по NetBIOS и перехватывать самому. Страница: 1 |
Вопрос: Как про-ть текст окна службы Messenger?
Добавлено: 19.04.04 09:31
Автор вопроса: DDOS
Ответы
Всего ответов: 7
Номер ответа: 1
Автор ответа:
GlooM
ICQ: 348453688
Вопросов: 88
Ответов: 356
Web-сайт:
Профиль | | #1
Добавлено: 19.04.04 14:50
Мне бы тоже хотелось знать....
Номер ответа: 2
Автор ответа:
Александр
Разработчик Offline Client
ICQ: 204034
Вопросов: 106
Ответов: 1919
Профиль | | #2
Добавлено: 19.04.04 20:08
Номер ответа: 3
Автор ответа:
DDOS
Вопросов: 5
Ответов: 2
Профиль | | #3
Добавлено: 20.04.04 06:16
Номер ответа: 4
Автор ответа:
Sur
ICQ: 1249088
Вопросов: 10
Ответов: 304
Web-сайт:
Профиль | | #4
Добавлено: 20.04.04 12:31
Номер ответа: 5
Автор ответа:
Sur
ICQ: 1249088
Вопросов: 10
Ответов: 304
Web-сайт:
Профиль | | #5
Добавлено: 20.04.04 16:48
Номер ответа: 6
Автор ответа:
Sur
ICQ: 1249088
Вопросов: 10
Ответов: 304
Web-сайт:
Профиль | | #6
Добавлено: 20.04.04 17:24
Номер ответа: 7
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #7
Добавлено: 20.04.04 17:43