0

Ich habe eine VB6-Anwendung, die eine Instanz des Internet Explorers erstellt und Drag & Drop für diese Instanz implementiert. Ich verwende das Ereignis BeforeNavigate2, so dass das Ereignis den Pfad zurückgibt, wenn der Benutzer eine Datei oder einen Ordner im Explorer löscht.Das Ereignis BeforeNavigate2 in Windows Internet Explorer 7 löst nicht aus

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

Es funktioniert gut mit Internet Explorer 6. Es ist jedoch nicht ordnungsgemäß mit Windows Internet Explorer 7 funktioniert, wenn ich eine Datei legen Sie es funktioniert, aber wenn ich einen Ordner legen Sie es öffnet einfach den Ordner und es funktioniert nicht feuern Sie das Ereignis ab.

Was hat sich im IE7 geändert? Gibt es eine Einstellung? Gibt es ein Sicherheitsproblem?

Dank

Antwort

1

IE6 hatte, was als „Shell Integration“ genannt wurde, was im Grunde bedeutet, dass iexplore.exe und explorer.exe das gleiche tat, die offen einen gemeinsamen Rahmen war, die entweder eine Webseite oder ein Host könnte Shell-Ordner.

Für IE7 wurde diese Integration aus einer Reihe von technischen Gründen entfernt, darunter die Protected Mode IE Sicherheit feature und der Wunsch, IE7 Downlevel problemlos auf Windows XP sowie Windows Vista zu liefern.

Also, um Ihre Frage zu beantworten, ja, etwas in IE7 geändert. Wenn Sie versuchen, über einen beliebigen Mechanismus zu einem lokalen Dateipfad zu navigieren, wird die Navigation abgebrochen und an die ausführende Instanz der explorer.exe-Shell delegiert. Es gibt keine Einstellung, um zum vorherigen Verhalten zurückzukehren.

Wenn Sie dies benötigen, sollten Sie eine Shell-Erweiterung und keine Browser-Erweiterung schreiben.

+0

Hallo jeffamaphone Vielen Dank für Ihre Antwort Ich werde Shell Erweiterungen betrachten – Ioannis