То, как вы это делаете, это способ открыть браузер по умолчанию. Проблема заключается в том, что IE и Firefox всегда будут открывать документ вместо того, чтобы вывести соответствующую вкладку вперед.
Я подумал, что вы могли бы делать что-то для браузера с помощью переключателей командной строки. В этом случае вы должны получить браузер по умолчанию из HKEY_CLASSES_ROOT \ HTTP \ shell \ open \ command.
К сожалению, ни один из двух основных браузеров не имеет переключателя, чтобы открывать только URL, который еще не открыт. (IE переключается здесь , Firefox переключается здесь ). Кроме того, во времена просмотра без вкладок я бы посоветовал вам взглянуть на EnumWindows , чтобы найти соответствующий сеанс, но это больше не работает, AFAIK.
Мой совет:
- Проверить браузер по умолчанию
- Для IE используйте код Icebob . Также используйте этот или ваш текущий код ShellExecute для браузеров, которые вы явно не поддерживаете.
- Для Firefox, зайдите на developer.mozilla.org. Должен быть какой-то путь.
- То же самое для webkit (Chrome, Safari) и Opera.
Или жить с дубликатами. В этом случае ваш код ShellExecute идеален.
Я бы, наверное, жил с дубликатами.