سؤال

ولدي تطبيق 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. عند I إسقاط ملف يعمل ولكن عندما تسقط مجلد انها مجرد يفتح المجلد وأنه لا إطلاق الحدث.

ما الذي تغير في IE7؟ هل هناك أي مكان؟ هل هناك أي قضية أمنية؟

والشكر

هل كانت مفيدة؟

المحلول

كان

وIE6 ما كان يعرف باسم "التكامل شل"، وهو ما يعني أساسا أن IEXPLORE.EXE و Explorer.exe فعلوا الشيء نفسه، الذي كان مفتوحا إطار مشترك يمكن أن تستضيف أي صفحة ويب أو مجلد قذيفة.

لIE7، تمت إزالة هذا التكامل لعدد من الأسباب الفنية، من بينها كونها محمية الأمن الوضع IE <لأ href = "http://msdn.microsoft.com/en-us/library/bb250462.aspx" يختلط = "نوفولو noreferrer"> ميزة والرغبة في السفينة بسهولة IE7 المستوى الأدنى إلى نظام التشغيل Windows XP وكذلك ويندوز فيستا.

وهكذا، للإجابة على سؤالك، نعم، شيئا ما تغير في IE7. إذا حاولت انتقل إلى مسار ملف محلي، الى حد كبير عبر أي آلية، وإحباط الملاحة والمندوبين إلى مثيل قيد التشغيل من قذيفة EXPLORER.EXE. ليس هناك تحديد للعودة إلى السلوك السابق.

إذا كنت بحاجة إلى هذا العمل، يجب عليك أن تنظر كتابة شل التمديد وليس التمديد متصفح.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top