0

我有一個VB6應用程序,它創建Internet Explorer的一個實例並實現此實例的拖放操作。我正在使用BeforeNavigate2事件,以便用戶在資源管理器上放置文件或文件夾時,該事件將返回路徑。Windows Internet Explorer 7中的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

IE6有什麼被稱爲「外殼集成」,這基本上意味着IEXPLORE.EXE和Explorer.exe的做同樣的事情,這是一個開放的公共框架能夠承辦無論是網頁或shell文件夾。

對於IE7,由於多種技術原因,這種集成被刪除,其中包括保護模式IE安全feature以及希望輕鬆將IE7降級到Windows XP以及Windows Vista。

所以,要回答你的問題,是的,IE7中的一些變化。如果嘗試導航到本地文件路徑,幾乎通過任何機制,它會中止導航並將其委託給explorer.exe外殼的正在運行的實例。沒有設置可以恢復到以前的行爲。

如果你需要這個工作,你應該考慮編寫一個Shell擴展而不是瀏覽器擴展。

+0

你好jeffamaphone 謝謝你的回答 我會看看shell擴展 – Ioannis 2009-06-23 22:20:52

相關問題