Question

J'ai une application VB6 qui crée une instance d'Internet Explorer et implémente le glisser-déposer pour cette instance. J'utilise l'événement BeforeNavigate2 pour que, lorsque l'utilisateur supprime un fichier ou un dossier sur l'explorateur, l'événement renvoie le chemin.

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

Cela fonctionne très bien avec Internet Explorer 6. Cependant, cela ne fonctionne pas correctement avec Windows Internet Explorer 7. Lorsque je dépose un fichier, il fonctionne, mais lorsque je dépose un dossier, il ne fait que l'ouvrir et ne déclenche pas l'événement.

Qu'est-ce qui a changé dans IE7? Y a-t-il un réglage? Y a-t-il un problème de sécurité?

Merci

Était-ce utile?

La solution

IE6 avait ce qu’on appelait "Shell Integration", ce qui signifie essentiellement que iexplore.exe et explorer.exe ont fait la même chose, à savoir ouvrir un cadre commun pouvant héberger une page Web ou un dossier shell.

Pour IE7, cette intégration a été supprimée pour un certain nombre de raisons techniques, parmi lesquelles la sécurité de l'IE en mode protégé fonctionnalité et le désir d’expédier facilement le niveau inférieur d'IE7 à Windows XP ainsi qu'à Windows Vista.

Donc, pour répondre à votre question, oui, quelque chose a changé dans IE7. Si vous essayez de naviguer vers un chemin de fichier local, en utilisant un mécanisme quelconque, il abandonne la navigation et le délègue à l'instance en cours d'exécution du shell explorer.exe. Aucun paramètre ne permet de revenir au comportement précédent.

Si vous souhaitez que cela fonctionne, envisagez d'écrire une extension Shell et non une extension de navigateur.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top