2009-07-29 2 views
0

Internet Explorer 7이 설치된 Vista의 다음 코드는 두 개의 창 (파일이 나타나는 Navigate가 호출 될 때 두 번째 창)을 엽니 다. 이것은 내가 아는 한 Internet Explorer 8 또는 XP에서 발생하지 않습니다. 어떻게 그 일을 그만 둘 수 있니?IWebBrowser2.Navigate 두 번째 창을 엽니 다.

 SHDocVw.InternetExplorerClass ieObject = (SHDocVw.InternetExplorerClass)this.ieObject; 
    if (this.ieObject == null) 
    { 
     ieObject = new SHDocVw.InternetExplorerClass(); 
     this.ieObject = ieObject; 
    } 

    SHDocVw.IWebBrowser2 browserApp = (SHDocVw.IWebBrowser2)this.ieObject; 
    object empty = System.Reflection.Missing.Value; 
    browserApp.Visible = true; 
    User32.SetForegroundWindow(new IntPtr(browserApp.HWND)); 
    browserApp.Navigate(filePath, ref empty, ref empty, ref empty, ref empty); 

답변

0

신뢰할 수있는 웹 사이트로 이동하고 있습니까? 네비게이션이 무결성 레벨을 교차한다면, IE는 그 무결성 레벨을위한 새로운 프로세스를 생성해야합니다. IE8은 탭과 프레임이 다른 프로세스에있을 수 있기 때문에 동일한 창에서이를 처리 할 수 ​​있습니다. IE7은 탭 프로세스를 지원하지 않습니다.

프로세스가 protected mode 인 경우 더 높은 무결성 수준의 프로세스에 액세스 할 수 없습니다. 주변을 돌아 다니면 명령을 중계하는 대상 프로세스에서 실행되는 IE 확장을 작성하는 것입니다.