Откройте новую вкладку в IE - PullRequest
       11

Откройте новую вкладку в IE

3 голосов
/ 01 октября 2010

Я использую следующий код для открытия сайта в Internet Explorer

ProcessStartInfo startInfo = new ProcessStartInfo
{
  Arguments = "http://www.example.com",
  FileName = "C:\\Program Files (x86)\\Internet Explorer\\iexplore.exe",
  RedirectStandardInput = true,
  UseShellExecute = false
};
System.Diagnostics.Process process = System.Diagnostics.Process.Start(startInfo);

Как я могу открыть свой сайт в новой вкладке , а не в новом браузере, учитывая, что браузер уже открыт ???

Ну

Мы создаем приложение, в котором пользователь может использовать 2 варианта:

1 - Использование браузера по умолчанию.

2 - используйте один из следующих браузеров: IE, Google Chrome и Firefox (пока).

и после выбора браузера, который нужно использовать в своем приложении, он должен выбрать, хочет ли он открыть запрошенную страницу в новом окне или на новой вкладке.

например: если он выберет IE с новой вкладкой, то система попытается найти последнюю страницу, открытую программой, и обновить ее, если она существует, а если нет, то откроет ее в новой вкладке.

Что касается браузера IE, я думаю, что EricLaw-MSFT помог мне найти способ открыть новую вкладку и новое окно, мне все еще нужно знать, как я могу получить открытую вкладку (уже открытую моей программой) и обновить в нужде.

Мне все еще нужно сделать то же самое для Firefox и Google Chrome.

Спасибо за ваши ответы и еще раз извините за мой плохой английский:)

Ответы [ 3 ]

8 голосов
/ 01 октября 2010

Вы можете просто использовать:

Process.Start("http://www.mysite.com");

Это будет не обязательно открываться в IE, но в браузере пользователя по умолчанию в качестве новой вкладки (если браузер поддерживает это), и этовероятно, то, что пользователь хочет в любом случае;)

1 голос
/ 23 января 2017

ссылка Interop.SHDocVw.dll

 InternetExplorer ie = null;

 SHDocVw.ShellWindows allBrowser = new SHDocVw.ShellWindows();//gives all browsers
 int browserCount = allBrowser.Count - 1;//no . of browsers
 while (browserCount >= 0)
   {
     ie = allBrowser.Item(browserCount) as InternetExplorer;
     if (ie != null && ie.FullName.ToLower().Contains("iexplore.exe"))//all IE will have this name
       {
         ie.Navigate2("http://www.example.com", 0x1000);//0x1000 is the flag to open IE in new tab
         break;
       }
      browserCount--;

    }
1 голос
/ 01 октября 2010

Если iexplore.exe не имеет каких-либо параметров, которые вы можете передать ему, я не уверен, если вы можете.

Весь код, который вы делаете, запускает новый процесс IE, поэтому я не могу понять, как он сможет использовать уже запущенный процесс.

Из интереса, если вы знаете, что браузер уже запущен, почему вы используете этот метод для навигации?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...