質問

インターネットエクスプローラーのインスタンスを作成し、このインスタンスのドラッグアンドドロップを実装するVB6アプリケーションがあります。ユーザーがエクスプローラーでファイルまたはフォルダーをドロップすると、イベントがパスを返すように、イベント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の変更点設定はありますか?セキュリティ上の問題はありますか?

ありがとう

役に立ちましたか?

解決

IE6には「シェル統合」と呼ばれるものがありました。これは基本的に、iexplore.exeとexplorer.exeが同じことを行い、Webページまたはシェルフォルダーのいずれかをホストできる共通のフレームを開くことを意味します。

IE7の場合、この統合はいくつかの技術的な理由で削除されました。その中には、保護モードIEセキュリティ機能およびIE7をWindows XPおよびWindows Vistaに簡単にダウンレベルで出荷したいという要望。

それで、あなたの質問に答えるために、はい、IE7で何かが変わりました。ほとんどすべてのメカニズムを介してローカルファイルパスに移動しようとすると、ナビゲーションが中止され、explorer.exeシェルの実行中のインスタンスに委任されます。以前の動作に戻す設定はありません。

これを機能させる必要がある場合は、ブラウザ拡張機能ではなくシェル拡張機能の作成を検討する必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top