문제

인터넷 익스플로러 인스턴스를 생성 하고이 인스턴스의 드래그 앤 드롭을 구현하는 VB6 응용 프로그램이 있습니다. Explorer에서 사용자가 파일이나 폴더를 삭제하면 이벤트가 경로를 반환하도록 이벤트를 BeforEnavigate2로 사용하고 있습니다.

......
Public WithEvents myIExplorer as new SHDocvW.InternetExplorer
......
Private Sub myIExplorer_BeforeNavigate2(ByVal pDisp As Object, URL As Variant, 
                Flags As Variant, TargetFrameName As Variant,
                PostData As Variant, Headers As Variant, Cancel As Boolean)

    If IsFile(URL) Then
       'Process file
    Else
       'Process folder
    End if

End Sub

Internet Explorer 6에서 잘 작동합니다. 그러나 Windows Internet Explorer 7에서 제대로 작동하지 않습니다. 파일을 삭제하면 작동하지만 폴더를 삭제하면 폴더가 열리면 이벤트가 시작되지 않습니다.

IE7에서 무엇이 바뀌 었습니까? 설정이 있습니까? 보안 문제가 있습니까?

감사

도움이 되었습니까?

해결책

IE6은 "Shell Integration"으로 알려진 것을 가지고 있는데, 이는 기본적으로 IExplore.exe 및 Explorer.exe가 동일한 작업을 수행했음을 의미합니다. 이는 웹 페이지 또는 쉘 폴더를 호스팅 할 수있는 공통 프레임을 열었습니다.

IE7의 경우,이 통합은 여러 가지 기술적 인 이유로 제거되었으며, 그 중에서도 보호 모드 IE 보안입니다. 특징 그리고 IE7 다운 레벨을 Windows XP와 Windows Vista로 쉽게 배송하려는 욕구.

따라서 귀하의 질문에 답하기 위해 IE7에서 무언가가 바뀌 었습니다. 모든 메커니즘을 통해 로컬 파일 경로로 이동하려고하면 탐색을 중단하고 Explorer.exe Shell의 실행중인 인스턴스로 위임합니다. 이전 동작으로 되돌릴 설정은 없습니다.

이 작업이 필요하면 브라우저 확장이 아닌 쉘 확장자를 작성하는 것이 좋습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top