Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как в событии NewWindow получить URL? / 6 сообщений из 6, страница 1 из 1
22.04.2010, 17:33
    #36593002
Amberit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в событии NewWindow получить URL?
Здравствуйте, уважаемые форумчане!

Недавно познакомился c Microsoft Visual Basic 2008 Express Edition, и у меня возник вопрос такого плана:

Есть приложение Windows Forms, есть объект WebBrowser. По событию NewWindow можно отловить открытие ссылки в новом окне. Это хорошо. А как узнать, собственно, куда переходим? Как узнать URL открываемой ссылки в новом окне?

Это нужно для того, чтобы вместо открытия URL в новом окне переадресовать его открытие на существующий объект WebBrowser.

Особенно странно, что в других языках программирования элемент Microsoft Web Browser обладает рядом дополнительных событий (например, NewWindow3), одним из элементом которого и есть этот пресловутый URL "новооконной" ссылки.

Спасибо за помощь!
...
Рейтинг: 0 / 0
22.04.2010, 17:34
    #36593005
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в событии NewWindow получить URL?
BeforeNavigate
...
Рейтинг: 0 / 0
22.04.2010, 17:53
    #36593041
Amberit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в событии NewWindow получить URL?
Konst_One,

BeforeNavigate на кого? У меня нет ссылки на новое открываемое окно, оно открывается вне моего приложения, отдельным окном IE.

P.S. Странная у меня какая-то студия. Событие BeforeNavigate отстутсвует для элемента WebBrowser напрочь... В другой IDE (Sybase PowerBuilder) для OLE-объекта Microsoft Web Browser такое событие присутствует. Закрадываются сомнения - в разных IDE используются разные объекты?

На всякий случай: ОС -WinXP SP2, Браузер - IE6.
...
Рейтинг: 0 / 0
22.04.2010, 17:56
    #36593047
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в событии NewWindow получить URL?
инстанс открытого окна IE можно всегда получить


Example:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Sub ListShellWindows()
'Get all currently open IE and Explorer windows (those are based on the same class).
'For IE windows, get location. For WE windows, get path.

Dim objShell As Shell
Dim objIE As InternetExplorer
Dim objExplorer As ShellFolderView

Dim obj As Object

Set objShell = New Shell
For Each obj In objShell.Windows
If TypeName(obj.Document) = "HTMLDocument" Then
Set objIE = obj
Debug.Print objIE.LocationURL
Else
Set objExplorer = obj.Document
Debug.Print objExplorer.FocusedItem.Path
End If
Next obj

End Sub
This requires a reference to Microsoft Internet Controls and to Microsoft Shell Controls and Automation. You can also choose to not add the references, but then replace the variable declarations with As Object.
...
Рейтинг: 0 / 0
22.04.2010, 18:08
    #36593083
Amberit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в событии NewWindow получить URL?
Konst_One,

Спасибо за приведенный код, но, к сожалению, он не работает.

Повторюсь, я с Microsoft Visual Basic знаком ровно полдня, поэтому не знаю многих вещей.

Итак, имеется Microsoft Visual Studio 2008 Express Edition с Microsoft Visual Basic 2008 Express Edition. При вставке Вашего кода в форму получаю следующие сообщения об ошибке:

Ошибка 1 Тип "Shell" не определен.
Ошибка 2 Тип "InternetExplorer" не определен.
Ошибка 3 Тип "ShellFolderView" не определен.
Ошибка 4 Тип "Shell" не определен.
...
Рейтинг: 0 / 0
22.04.2010, 18:23
    #36593120
Amberit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в событии NewWindow получить URL?
Konst_One,

Вроде бы разобрался. Вместо стандартного WebBrowser выбрал пользовательский COM-компонент Обозреватель страниц Microsoft Web Browser (Сервис - Выбрать элементы панели элементов), в котором есть все нужные мне события, а именно событие NewWindow3.

Странно, что в Студии по умолчанию не установлен этот компонент, а существует какая-то очень обрезанная его версия. Возможно, это вообще разные компоненты.

Так что вопрос снимается. Спасибо!
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как в событии NewWindow получить URL? / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]