Как получить URL вкладок Internet explorer с PID каждой вкладки?

У меня есть приложение, которое запускает веб-браузер с определенным URL-адресом . После завершения моей программы я хочу закрыть веб-страницы/вкладки, которые я открыл..

путем вызова EXE-файла с параметрами a. Имя процесса b. Строка присутствует в URL

вся проблема как убить дочерний процесс/вкладку firefox из Java / C++

я использовал подход C#...

Я могу найти идентификатор процесса всех вешалки..

foreach (Process theprocess in processlist) {
    if (theprocess.ProcessName == "iexplore") {
        Console.WriteLine("Process: {0}tID: {1}tWindow name: {2}",
            theprocess.ProcessName, theprocess.Id, theprocess.MainWindowTitle
        );
    }
}

В настоящее время я могу получить только заголовок окна процесса....и в IE8 виден только один заголовок окна основного процесса..

при условии, что у меня есть pids каждой вкладки,Как найти URL-адрес вкладки ...и убить только этот счет ??

Я получил эту помощь от Доступ запрещен - при попытке получить url (текст) из дескриптора адресной строки

использование SHDocVw; . .

foreach (InternetExplorer ieInst in new ShellWindowsClass()) Приставка.Метода WriteLine(ieInst.LocationURL);

2 ответов


в IE7 и более поздних версиях ниже кода будет убивать только вкладку, которая имеет соответствующую строку в своем URL-адресе.

   foreach (SHDocVw.InternetExplorer ieInst in new SHDocVw.ShellWindows())
   {
        String url = ieInst.LocationURL;
        if (url.Contains("google"))
        {
            ieInst.Quit();
        }
   }

для фокусировки определенной вкладки код:

   foreach (SHDocVw.InternetExplorer ieInst in new SHDocVw.ShellWindows())
   {
        String url = ieInst.LocationURL;
        if (url.Contains("google"))
        {
            int val = ieInst.HWND;
            IntPtr hwnd = new IntPtr(val);
            ShowWindow(hwnd, SW_MAXIMISE);
            SetForegroundWindow(hwnd);
        }
   }

есть способ получить URL-адрес каждого экземпляра IExplorer !!

добавить ссылку "Microsoft Internet Controls" в проект.

часть кода

**foreach (SHDocVw.InternetExplorer ieInst in new SHDocVw.ShellWindowsClass())
        {
            System.Console.WriteLine(ieInst.LocationURL);
        }**

создание exe и взаимодействия.SHDocVw.dll файлы

Он будет работать ...:)