Я использовал этот код (из MSDN), чтобы открыть браузер по умолчанию.ShellExecute висит, открывая новое окно браузера, если по умолчанию это Chrome или IE
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 и хрома, только если экземпляр уже открыт, он тогда только объявления вкладки и возвращает запрошенную страницу.
Если экземпляр уже не открыт, создается новый, но страница никогда не загружается и, в конечном итоге, отключается.
Только firefox, похоже, работает нормально в обоих сценариях.
Затем я попробовал технику (детальный here), где я создал временный файл 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 работали, но хром по-прежнему имел ту же проблему.
Кто-нибудь знает об этом?
EDIT, чтобы добавить сведения о ОС и браузер версии:
ОС: Windows Vista Home Basic 32-разрядная
FireFox 20.0.1
IE 9.0.8112.16421
Opera 12,15 Строй 1748
Хром 26.0.1410.64 м
Как вы подозреваете конкретный браузер, не могли бы вы предоставить более подробную информацию о вашей среде: OS версии, версии браузеров ? –
@ ИльяКурносов. Спасибо за ваше предложение, я только что сделал это – kjack
@IlyaKurnosov Извините, что мои последние комментарии были не очень ясными. Я хочу сказать, что я отредактировал свой вопрос согласно вашему предложению. – kjack