2011-02-03 2 views
3

C#, MSHTML 및 InternetExplorer 개체를 사용하여 웹 페이지를 실행하고 있지만 문제가 있습니다.MSHTML/IExplorer를 사용하여 모달 대화 상자 개체 캡처

기본적으로 IE7 이하에서는 window.showModalDialog가 호출 될 때 NewWindow3 이벤트가 트리거됩니다.

IE8 및 IE9에서 NewWindow3은 트리거되지 않습니다. MSDN에서 쓴 것처럼 "NewWindow3 이벤트는 Internet Explorer의 새 인스턴스를 만들려고 할 때만 발생하며 showModalDialog 또는 showModelessDialog를 호출해도 이벤트가 발생하지 않습니다. Internet Explorer의 새 인스턴스가 아니므로 MSHTML 호스트 창으로 구현됩니다 HTML 컨텐트를 렌더링하고 표시 할 수 있지만 문서간에 하이퍼 링크는 표시 할 수 없습니다. " (http://msdn.microsoft.com/en-us/library/aa768337(v=VS.85).aspx)

모달 대화 상자를 캡처하는 데 가까이 갈 수 있었던 유일한 방법은 트리거 -하지만 실제 모달 객체에 액세스 할 수 없습니다 - WindowStateChanged 이벤트를 사용하고 있습니다. 이 이벤트는 일상적으로 호출되지만 아직 dwFlags == 1 및 dwValidFlagsMask == 3 일 때 브라우저가 모달 대화 상자로 인해 비활성화되었을 때 나타납니다.

이제 알아 두어야 할 사항은 다음과 같습니다. 그 모달 대화 상자 개체를 얻는 방법입니다. 어떤 도움을 주시면 감사하겠습니다.

답변

0

모두 밝혀지면 Windows UAC 설정에 따라 달라집니다. 보안상의 이유로 UAC가 보통 이상으로 설정되면 UAC는 모달 대화 상자에 대한 액세스를 차단합니다. 이 설정을 낮추면 NewWindow 이벤트를 통해 모달 대화 상자에 대한 전체 액세스가 가능합니다.

+0

이 모달 대화 상자에 대한 액세스를 몇 일간 얻으려고 시도했습니다. 이것은 놀라운 발견처럼 들리지만 그것은 나를 위해 작동하지 않습니다. 내 UAC 설정이 끝났습니다. 그리고 NewWindow2와 NewWindow3 모두에 연결됩니다. 귀하의 질문에 당신이 NewWindow3 언급했지만 귀하의 대답에 당신이 NewWindow 언급했다. 당신은 NewWindow3 뜻 이니? 또는 NewWindow에 연결할 수있는 방법을 찾았습니까? 그것에 첨부하는 방법을 알아 내려고 노력하고 있지만 InternetExplorer과 IWebBrowser2는 노출하지 않습니다. 단지 NewWindow2와 NewWindow3입니다. 모든 도움을 크게 주시면 감사하겠습니다. –

+1

NewWindow에도 첨부됩니다. 나는 Windows 7 64 비트와 IE8 32 비트를 사용하고 있습니다. 어떤 OS 및 IE 버전에서이 작업을 수행 했습니까? –