Как я могу проверить каждое открытое окно IE (для URL-адреса или заголовка)
Я работаю над приложением VB в VS'10, которое будет открывать новые окна браузера IE на различных сайтах. В том случае, если пользователь уже открыл окно на определенный ресурс, я не хочу открывать второе окно, а вместо этого "найти" существующее и вывести его на передний план. У меня будут URL-адреса целевой страницы (по которым я могу определить основной домен) и в некоторых случаях заголовок страницы, чтобы я мог соответствовать любому из этих элементов.
Я смог перечислить различные открытия сессии, т. е. через SHDocVw.SHellWindows, но я не смог точно определить конкретный идентификатор процесса, чтобы вызвать Process.GetProcesses.SetForeGroundWindow(). Если я буду полагаться только на процесс.GetProcesses, похоже, я могу найти только самое последнее использованное окно.
Ниже приведена соответствующая часть Sub, которая использовала SHDocVw для сравнения URL-адресов существующих окон с тем, которое мне нужно либо найти, либо запустить. В какой - то момент я безуспешно попробовал AppActivate () - но я не уверен, что это то, чего я действительно хотел.
Любые комментарии и обратная связь очень ценятся. Спасибо заранее
Что я уже пробовал:
Private Sub checkIE(ByVal inURL As String) Dim blnDoNew As Boolean = True Dim SWs As New SHDocVw.ShellWindows Dim IE As SHDocVw.InternetExplorer Dim strDomain As String = Replace(Replace(inURL.ToLower(), "https://", ""), "http://", "") strDomain = strDomain.Substring(0, (InStr(strDomain, "/") - 1)) strDomain = strDomain.Substring(InStr(strDomain, ".")) For Each IE In SWs If InStr(IE.Name, "Internet Explorer") > 0 Then ' Ignore empty names, and "about" and "blank", tabs: ' If (IE.LocationName <> "") _ And (IE.LocationURL <> "about:Tabs") _ And (IE.LocationURL <> "about:blank") Then If InStr(IE.LocationURL.ToString().ToLower(), strDomain) > 0 Then blnDoNew = False IE.Visible = True ' How do I find this session and pop it to the forefront? ' End If End If End If Next If blnDoNew Then openIE(inURL) End If End Sub