Событие BeforeNavigate2 в Windows Internet Explorer 7 не запускается - PullRequest
0 голосов
/ 23 июня 2009

У меня есть приложение VB6, которое создает экземпляр Internet 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? Есть ли какие-либо настройки? Есть ли проблемы с безопасностью?

Спасибо

1 Ответ

1 голос
/ 23 июня 2009

В IE6 было то, что было известно как «Интеграция с оболочкой», что в основном означает, что iexplore.exe и explorer.exe делали то же самое, открывая общий фрейм, в котором можно было разместить веб-страницу или папку оболочки.

Для IE7 эта интеграция была удалена по ряду технических причин, среди которых были функция безопасности *1003* в защищенном режиме IE и стремление легко доставить IE7 до Windows XP, а также Windows Vista.

Итак, чтобы ответить на ваш вопрос, да, что-то изменилось в IE7. Если вы попытаетесь перейти к локальному пути к файлу, в основном с помощью какого-либо механизма, он прекратит навигацию и делегирует ее работающему экземпляру оболочки explorer.exe. Нет настроек для возврата к предыдущему поведению.

Если вам нужно, чтобы это работало, вы должны написать расширение Shell, а не расширение браузера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...