我使用此代码(来自 MSDN)打开默认浏览器。
Private Declare Function ShellExecute _
Lib "shell32.dll" _
Alias "ShellExecuteA"( _
ByVal hwnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Long) _
As Long
Private Sub Command1_Click()
Dim r As Long
r = ShellExecute(0, "open", "http://www.microsoft.com", 0, 0, 1)
End Sub
仅当实例已打开时,它才适用于 IE 和 chrome,然后它只是广告一个选项卡并返回请求的页面。
如果没有实例已经打开,则会创建一个新实例,但页面永远不会加载并最终超时。
在这两种情况下,似乎只有 firefox 可以正常工作。
然后,我尝试了一种技术(在此处详细介绍),在该技术中,我创建了一个临时 htm 文件,以便找到关联的应用程序,然后使用以下 Shell 调用之一:
Shell "C:\Program Files\Internet Explorer\iexplore.exe https://www.google.co.uk/", vbNormalFocus
Shell "C:\Program Files\Mozilla Firefox\firefox.exe https://www.google.co.uk/", vbNormalFocus
Shell "C:\Users\Kjack\AppData\Local\Google\Chrome\Application\chrome.exe https://www.google.co.uk/", vbNormalFocus
这次 FF 和 IE 都可以工作,但 chrome 仍然有同样的问题。
有谁知道解决这个问题?
编辑以添加有关操作系统和浏览器版本的详细信息:
操作系统:Windows Vista Home Basic 32 位
火狐 20.0.1
即 9.0.8112.16421
歌剧 12.15 构建 1748
铬 26.0.1410.64 m