Процесс. Запустите ("IExplore.exe");
Это всегда работает на каждой машине? В противном случае, как сделать это правильно?
...Править:.................................
Проблема с Процессом. Запустите ("http://www.example.com/"); это, мы должны быть нацелены на локальный файл HTML с некоторым querystring, указывающим который страница загрузиться в HTML frameset. Таким образом, наш URL похож на следующее:
G:\PathToHelpFolder\index.html#search?page=1.html
Если Вы передаете этот путь к Процессу. Запустите, ошибка сгенерирована: "не может найти файл". Это вызывается querystring в конце. (#search?page=1.html)
Так, мы должны запустить проводник (или браузер по умолчанию был бы лучше) с filepath как параметр командной строки. Мы нашли метод выше в документации MSDN. (Процесс. Запустите ("IExplore.exe") ;) Наш единственный вопрос состоит в том, если этот метод достаточно надежен для развертывания к коммерческому приложению. Моно не проблема, только системы окон предназначены.
... РЕДАКТИРОВАНИЕ: Наше решение......
Наше решение состояло в том, чтобы получить браузер по умолчанию из реестра и запустить это с имени файла как аргумент. (как указано в: Запуск браузера по умолчанию с HTML из файла, затем перейдите к определенной привязке),
Это должно работать на каждом компьютере, на котором есть исполняемый файл с именем IExplore.exe
в месте, которое Process.Start
может найти с помощью переменной среды PATH.
Запуск процесса с указанием имени файла аналогичен вводу информации в диалоговом окне «Выполнить» в меню «Пуск» Windows. Следовательно, имя файла не обязательно должно представлять исполняемый файл. Это может быть файл любого типа, расширение которого связано с приложением, установленным в системе. Например, имя файла может иметь расширение .txt, если у вас есть связанные текстовые файлы с редактором, например Блокнотом, или у него может быть .doc, если вы связали файлы .doc с инструментом обработки текста, например Microsoft Word. Точно так же, как диалоговое окно «Выполнить» может принимать имя исполняемого файла с расширением .exe или без него, расширение .exe является необязательным в параметре fileName. Например, вы можете установить для параметра fileName значение «Notepad.exe» или «Notepad».
Если кто-то переименовал или удалил IExplore.exe
, или он находится в месте, которого нет в переменной среды PATH, то это не сработает.
Однако, если ваша цель - открыть браузер, я бы пошел с передачей URL-адреса, как предлагали другие.
Если ваша цель - открыть браузер для перехода на определенную страницу, лучше использовать только URL-адрес страницы:
Process.Start("http://www.example.com/");
В этом случае будет использоваться браузер пользователя по умолчанию. (Я, например, был бы раздражен, если бы вынужден был использовать IE.)
Однажды мне понадобилось имя браузера по умолчанию (без открытия) для дурацкое приложение, которое я создал, я нашел здесь отличный учебник: http://ryanfarley.com/blog/archive/2004/05/16/649.aspx
Вы также можете просто добавить сюда URL-адрес. ( Process.Start (" http://somewebsite.com ");
), который всегда будет работать и использовать стандартный браузер.
Вероятно, вам следует напрямую запустить файл HTML, чтобы ассоциация пользователя учитывалась. Нет ничего более раздражающего для меня как пользователя, чем наличие какого-то пакета, вынуждающего меня использовать IE, когда я четко установил свои предпочтения на использование другого браузера.
Попробуйте следующее:
Process.Start ("file: /// g: /PathToHelpFolder/index.html#search? Page = 1.html ");
Вы можете создать простой HTML-файл, который перенаправляет фактическую ссылку, которую вы хотите, а затем запустить процесс, указывающий на этот более простой URL-адрес.