2013-05-16 5 views
4

Что мне нужно сделать, это запустить браузер по умолчанию с помощью поиска по умолчанию. Поиск по умолчанию - это то, что происходит, когда вы вводите условия поиска в текстовом поле навигации по URL. Например, в Chrome и Firefox по умолчанию ввод «щенков» в текстовое поле nav приведет вас к результатам Google для «щенков». В IE он будет делать то же самое, только на Bing.C# Запустить браузер по умолчанию с поисковым запросом по умолчанию

Как правило, вы можете вызвать браузер по умолчанию, просто делать что-то вроде:

Process.Start("http://google.com"); 

Но я не могу предположить, поставщик поиска по умолчанию является Google.

Есть ли способ вызвать это поведение через C#? Единственное, что я могу сделать, это попытаться определить, какой браузер по умолчанию, а затем выполнить его непосредственно с условиями поиска.

Кто-нибудь знает какой-либо другой (желательно более простой) способ?

Обновление: Только что нашел код, чтобы найти браузер по умолчанию here.

+0

Вы пытались запустить процесс со ссылкой, имеющей запрос? Например, «Process.Start» («https://www.google.co.uk/#sclient=psy-ab&q=my+search+query») ' –

+0

@ aleksey.berezan Это предполагает, что Google является поставщиком по умолчанию. Проблема здесь в том, что можно либо запустить браузер по умолчанию на сайт, либо начать поиск с определенного браузера, ему нужен способ запуска браузера по умолчанию и использование поставщика поиска по умолчанию. – Nate

ответ

2

Если вы уже знаете, как найти браузер по умолчанию, я хотел бы попробовать использовать Process.Start("browser\path.exe", "\"? searchterm\"");

Это, кажется, работает как для IE и Chrome.

+0

Это прекрасно работает в сочетании с кодом для поиска браузера по умолчанию. Благодаря! – jpreed00

+0

@DominicP Не возражайте, чтобы вырезать очень старую почту, но все это, похоже, не работает с FireFox или Chrome v26.0.1410.64 m ... Любая идея, что аргументы для этих браузеров? – sab669

+0

@ sab669 Версия Chrome, у меня есть 30.0.1599.101 м, и она работает для меня там. Найдите где chrome.exe существует в вашей файловой системе (возможно ... \ AppData \ Local \ Google \ Chrome \ Application \ chrome.exe в вашем профиле пользователя), перейдите туда в командной строке и попробуйте ввести 'chrome.exe '? Abalone «'. Не открывается ли хром с результатами поиска? –

1

Я просто проверял IE, набрав команду это в меню Пуск -> Выполнить строку:

"C: \ Program Files \ Internet Explorer \ iexplore.exe" "переполнение стека"

Он активировал Internet Explorer и искал переполнение стека с помощью моего провайдера поиска по умолчанию. Поскольку ваши условия поиска не являются стандартным URL-адресом, начиная с http://, нет никакого способа для Process.Start знать, чтобы запустить браузер, если вы не предоставили конкретный исполняемый файл, который вы хотите запустить.

Вы можете определить браузер по умолчанию, проверив HKEY_CLASSES_ROOT\http\shell\open\command. Затем вы можете запустить этот браузер с условиями поиска в качестве параметра запроса, а затем использовать этот поисковый провайдер по умолчанию для браузеров.

+0

Yup, я только что нашел код для получения браузера по умолчанию в другом месте в StackOverflow, я обновлю сообщение. Однако этот метод, похоже, не работает для Chrome. – jpreed00

+0

Должно быть, это связано с самим поисковым термином. «c: \ Program Files \ Internet Explorer \ iexplore.exe» «переполнение стека» возвращает результаты поиска. «c: \ Program Files \ Internet Explorer \ iexplore.exe» «щенки» возвращают ошибку «Internet Explorer не отображает веб-страницу» после попытки получить http: // puppies /. – jpreed00

+1

@ jpreed00 Это из-за пространства между «стек» и «переполнение». Поскольку он недействителен в URL-адресе, IE понял, что вы хотите его искать, используя поставщик поиска по умолчанию. – ken2k

Смежные вопросы