VB6 / открыть URL-адрес в той же вкладке браузера через API или что-то еще? - PullRequest
1 голос
/ 01 апреля 2020

Хотите знать, может ли кто-нибудь помочь мне со следующим? Я бы хотел: а) найти текущее открытое окно браузера; б) перейти на веб-страницу внутри той же вкладки (не открывать новое окно)

Не могу найти именно то, что ищу , если я использую shellexecute, я могу открыть окно браузера - но, если оно уже открыто, - оно открывает «новую» вкладку с URL-адресом вместо замены существующего URL-адреса.

Как его заменить? Я думал о том, чтобы использовать что-то вроде EnumPro c, чтобы найти существующее окно браузера - но потом - я не знаю, что мне нужно сделать, чтобы изменить URL, как только я найду дескриптор окна? (Будет ли это связано с sendkeys? Или - есть ли что-то, что я могу использовать специально для изменения текущего окна браузера? Или это будет зависеть от браузера (т. Е. chrome против MS IE против firefox).

Самое важное, хотя - это переход на разные страницы на одной и той же вкладке 1008 *, а не постоянное открытие новых экземпляров.

Большое спасибо!

1 Ответ

0 голосов
/ 02 апреля 2020

, если бы я просто сосредоточился на MS IE - как бы я это сделал?

Windows предоставляет коллекцию Shell Windows через COM, которая включает в себя Explorer & IE windows - в последнем случае вы получите один windows на вкладку так:

Dim shApp: Set shApp = CreateObject("Shell.Application")
Dim shWnd: Set shWnd = shApp.Windows()

Dim i As Variant, ie As Object

For i = 0 To shWnd.Count - 1

    If shWnd.Item(i).Name = "Internet Explorer" Then
        '// got an IE tab
        Set ie = shWnd.Item(i)

        '// is it the tab we want - based on url
        If (LCase$(ie.LocationUrl) = "https://stackoverflow.com/") Then
            '// if so send it somewhere else
            ie.Navigate2 "http://reddit.com"
        End If
    End If

Next
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...