Как получить текст из статусной строки IE ?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Как получить текст из статусной строки IE ?

Сообщение jangle » 17.05.2007 (Чт) 15:33

Предположим у меня открыт браузер IE, и в статусной строке у него некий текст. Как можно получить этот текст в VB программу?

Вобщем для начала ткнул PB WinSpy+ в статусную строку IE, он выдал такие данные:

Код: Выделить всё
Class:  msctls_statusbar32
hWnd:   460214
Id:     40961


Т.е. зная хендл окна IE, я могу получить текст из статусной строки, получив хендл этого контрола по его ID, и выполнив что-то типа:

GetWindowText hWnd, @Text, %Max_Path

Однако такой вопрос, во всех ли версиях IE, ID статусной строки равено 40961 ? Или он может отличаться от версии к версии.
И второй вопрос, есть ли более цивильный путь получения содержимого статусной строки? Например через COM как нибудь

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 17.05.2007 (Чт) 15:42

Палюбэ. InternetExplorer/WebBrowser.StatusText.
F2 рулит неимоверно. Никогда не устану это повторять :wink:
Лучший способ понять что-то самому — объяснить это другому.

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Сообщение jangle » 17.05.2007 (Чт) 15:49

Палюбэ. InternetExplorer/WebBrowser.StatusText.
F2 рулит неимоверно. Никогда не устану это повторять


Для этого сайт должен быть загружен в контрол WebBrowser?

У меня ТЗ другое, сайт уже загружен в окно IE, и программа должна выдрать текст именно из статусной строки эксплорера.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 17.05.2007 (Чт) 15:58

Перебираешь коллекцию ShellWindows, определяешь по типу документа, которые из них IE, смотришь у нужного StatusText.
Лучший способ понять что-то самому — объяснить это другому.

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Сообщение jangle » 17.05.2007 (Чт) 16:14

Спасибо! Ларчик оказывается просто открывается:

Код: Выделить всё
Option Explicit
Private IE As InternetExplorer
Private SW As ShellWindows
Dim obj As ShellWindows

Private Sub Command1_Click()
Dim i As Integer
Dim IEDoc As HTMLDocument

Set obj = New ShellWindows
    For i = 0 To obj.Count - 1
    MsgBox obj.Item(i).StatusText
Next

End Sub


Совсем я VB забыл ! :)

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Сообщение jangle » 17.05.2007 (Чт) 16:29

И тогда в догонку еще один вопрос, у меня на странице несколько фреймов. В одном из фреймов отображается картинка и текстовая строка, мне нужно выдрать содержание этой строки, не HTML код, а именно содержание.
Какой класс содержит коллекцию фреймов?

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 17.05.2007 (Чт) 17:52

ie.document.frames
Лучший способ понять что-то самому — объяснить это другому.

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Сообщение jangle » 18.05.2007 (Пт) 14:49

ie.document.frames


А пример кода есть? Что-то не пойму, как эту коллекцию заюзать

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 18.05.2007 (Пт) 15:14

document.frames(0).document.all(номер_или_id_элемента_со_строкой).innerText
Лучший способ понять что-то самому — объяснить это другому.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 47

    TopList