У меня есть проект C#, который открывает URL-адреса в браузере IE с использованием Interop.SHDocVw.Операция отменена Исключение в WIN10 при использовании SHDocVw Navigate2 для navigatng, т.е.
Код использует один экземпляр объекта InternetExplorerClass и перемещается в разные URL-адреса. Эти URL-адреса находятся в зоне Intranet.
код прекрасно работает на WIN7 но WIN10 есть проблема. браузера IE открывает URL правильно в первый раз, но когда я пытаюсь использовать его во второй раз с использованием навигационных или navigate2 методов, которые я получаю следующее сообщение об ошибке:
System.Runtime.InteropServices.COMException (0x80004004) : Операция прервана (исключение из HRESULT: 0x80004004 (E_ABORT)) в SHDocVw.InternetExplorerClass.Navigate (URL String, Object & Flags, объект & TargetFrameName, объект & PostData, объект & Headers)
Я попытался запустить хост-приложение «как администратор», а затем он работал нормально. Также, когда я перемещаюсь вручную в окне IE на адрес в интернет зоны нет проблем, но при навигации вручную к другому intranet url и попытка запустить код во второй раз, ошибка бросается еще раз.
Код:
государственной статической силы IEOpenOnURL (строка URL) { объект о = NULL; bool newBrowser = false;
//check if window is already opened
if(webBrowser==null)
{
newBrowser = true;
}
else
{
try
{
//Cannot navigate in browser with an open modal dialog
if(webBrowser.Busy)
{
MessageBox.Show("הדפדפן תפוס - סגור את החלונות הקופצים מתוך הדפדפן הפתוח");
return;
}
}
//an error is thrown when the browser was closed by user
catch(Exception)
{
newBrowser = true;
}
}
if(newBrowser)
{
//create new instance of the browser
InternetExplorer explorer = new InternetExplorerClass();
webBrowser = (IWebBrowser2)explorer;
}
webBrowser.Visible = true;
//webBrowser.Navigate(url, ref o, ref o, ref o, ref o);
webBrowser.Navigate2(url, ref o, ref o, ref o, ref o);
//Set focus
SetForegroundWindow((IntPtr)webBrowser.HWND);
//If browser is minimized - show it
ShowWindow((IntPtr)webBrowser.HWND,9);
}
}
Привет Йоси, мы повторно испытывают те же проблемы. Вы когда-нибудь находили способ решить эту проблему? – FreddieGericke