vb6/通过api或其他方式在同一浏览器选项卡中打开url?

vb6/通过api或其他方式在同一浏览器选项卡中打开url?,vb6,Vb6,不知是否有人能帮我做以下事情?我想: a) 查找当前打开的浏览器窗口 b) 导航到同一选项卡内的网页(不打开新窗口) 我似乎找不到我要找的确切内容,如果我使用shellexecute,我可以打开一个浏览器窗口——但是,如果已经打开——它会打开一个带有URL的“新”选项卡,而不是替换现有URL 我怎样才能更换它?我曾考虑使用EnumProc之类的工具来查找现有的浏览器窗口,但是,我不知道在找到窗口句柄后需要做什么来更改url?(这是否与sendkeys有关?或者-我是否可以专门使用某些东西来更改当

不知是否有人能帮我做以下事情?我想: a) 查找当前打开的浏览器窗口 b) 导航到同一选项卡内的网页(不打开新窗口)

我似乎找不到我要找的确切内容,如果我使用shellexecute,我可以打开一个浏览器窗口——但是,如果已经打开——它会打开一个带有URL的“新”选项卡,而不是替换现有URL

我怎样才能更换它?我曾考虑使用EnumProc之类的工具来查找现有的浏览器窗口,但是,我不知道在找到窗口句柄后需要做什么来更改url?(这是否与sendkeys有关?或者-我是否可以专门使用某些东西来更改当前的浏览器窗口?或者这取决于浏览器(即chrome vs MSIE vs firefox)

但最重要的是导航到同一选项卡中的不同页面,而不是不断打开新实例

非常感谢


如果我只是专注于MSIE,我会怎么做

Windows通过包含资源管理器和IE窗口的COM公开外壳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

如果我只是专注于MSIE,我会怎么做

Windows通过包含资源管理器和IE窗口的COM公开外壳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

有很多浏览器。我想每个浏览器都会有不同的方法来枚举它的控件。你想过使用SendKeys来控制它吗?是的,但是(a)我已经有一段时间没有进行实际的API编码了,所以不记得如何找到浏览器的实例了。(b)sendkeys也一样。如果我只是专注于MSIE,我会怎么做呢?sendkeys不是API。它是的一部分。我认为@AngryHacker的重点是从VB6向IE发送击键,就好像它是一个人类用户告诉它该做什么一样。尝试一下,如果它不起作用,请在你的问题中编辑更多关于你所做事情的细节。有很多浏览器在那里。我想每一个都会有不同的方法来枚举它的控件。你想过使用SendKeys来控制它吗?是的,但是(a)我已经有一段时间没有进行实际的API编码了,所以不记得如何找到浏览器的实例了。(b)sendkeys也一样。如果我只是专注于MSIE,我会怎么做?sendkeys不是API。它是的一部分。我认为@AngryHacker的重点是从VB6向IE发送击键,就像是一个人类用户告诉它该做什么一样。如果它不起作用,请尝试并在问题中编辑更多关于你所做事情的细节。谢谢你的建议。尝试过这个-似乎不起作用。(可能对以前版本的windows起作用?)我正在使用windows 10/microsoft edge…奇怪-在进程列表中似乎确实有一个MSIE(而不是edge)实例在运行-但首先运行这个只会找到fileexplorer&MSIE窗口(so 3)-但是如果我尝试导航,什么都不会发生(edge什么都不做)。有什么建议吗?谢谢!谢谢你的建议。尝试过这个-似乎不起作用。(可能是以前版本的windows有作用?)我正在使用windows 10/microsoft edge…奇怪-似乎有一个MSIE实例(不是edge)在进程列表中运行-但首先运行此命令只会找到fileexplorer&MSIE窗口(SO3)-但是如果我尝试导航,什么都不会发生(edge不会做任何事情)。有什么建议吗?谢谢!