Я пишу небольшое приложение, которое запустит Internet Explorer и откроет неизвестный список или URL-адреса, либо в виде новых окон, либо в виде новых вкладок в существующих окнах (в зависимости от настроек для данного конкретного сайта).Запускаемые сайты могут быть в любой интернет-зоне.Я могу использовать методы SHDocVw для открытия новых окон и вкладок.
Я пытаюсь найти способ отследить последнюю открытую ссылку Internet Explorer, чтобы я мог использовать эту ссылку для открытия вкладок.
Я сталкиваюсь с ситуацией, когда из-за «слабосвязанного Internet Explorer» (LCIE) и защищенного режима IE запускаемый мной экземпляр IE закрывается, а другой автоматически запускается (переключение виртуальной вкладки IE)).Это приводит к тому, что я теряю ссылку на исходный IE, и при попытке открыть вкладку происходит сбой.
Я хотел бы использовать метод ShellWindows FindWindowSW, чтобы получить конкретное окно (на основе файла cookie ShellWindowsценность), но я не могу заставить его работать.Может ли кто-нибудь указать мне правильное направление?
private InternetExplorer GetLastExplorer(int cookie)
{
object _m = Type.Missing;
const int SWC_BROWSER = 0x00000001;
const int SWFO_COOKIEPASSED = 4;
int pHWND;
_shellWindows.FindWindowSW(cookie, ref _m, SWC_BROWSER, out pHWND, 5);
foreach (InternetExplorer window in _shellWindows)
{
if (window.HWND == pHWND)
return window;
}
return null;
}