0

У меня есть приложение VB6, которое создает экземпляр Internet Explorer и реализует перетаскивание для этого экземпляра. Я использую событие BeforeNavigate2, чтобы при удалении пользователем файла или папки в проводнике событие возвращало путь.Событие BeforeNavigate2 в Windows Internet Explorer 7 не срабатывает

...... 
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

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

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

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

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

+0

Hello jeffamaphone Спасибо за ваш ответ Я посмотрю на расширения оболочки – Ioannis

Смежные вопросы