c# - इंटरनेट एक्सप्लोरर एक्सटेंशन के विकास के साथ कैसे शुरुआत करें?




c++ internet-explorer (7)

क्या यहां किसी के पास आईई एक्सटेंशन विकसित करने / अनुभव करने का अनुभव है जो उनके ज्ञान को साझा कर सकता है? इसमें कोड नमूने, या अच्छे लोगों के लिंक, या प्रक्रिया पर दस्तावेज़ीकरण, या कुछ भी शामिल होगा।

मैं वास्तव में ऐसा करना चाहता हूं, लेकिन मैं एक विशाल दीवार को हंसमुख दस्तावेज, लुसी कोड / उदाहरण कोड / इसकी कमी के साथ मार रहा हूं। कोई भी सहायता / संसाधन जो आप पेश कर सकते हैं उसकी सराहना की जाएगी।

विशेष रूप से, मैं एक आईई एक्सटेंशन के भीतर से डीओएम तक पहुंच / कुशलतापूर्वक उपयोग करने के तरीके से शुरू करना चाहता हूं।

संपादित करें, यहां तक ​​कि अधिक जानकारी:

आदर्श रूप में, मैं एक टूलबार बटन लगाऊंगा, जिस पर क्लिक किया गया, एक मेनू पॉप अप किया जिसमें बाहरी साइटों के लिंक शामिल हैं। मैं कुछ स्थितियों के आधार पर पृष्ठ पर डीओएम और संयंत्र जावास्क्रिप्ट तक पहुंचना चाहूंगा।

आईई एक्सटेंशन में जानकारी जारी रखने का सबसे अच्छा तरीका क्या है? फ़ायरफ़ॉक्स / क्रोम / अधिकांश आधुनिक ब्राउज़र में, आप window.localStorage उपयोग करते हैं, लेकिन स्पष्ट रूप से IE8 / IE7 के साथ, यह एक विकल्प नहीं है। शायद एक SQLite डीबी या ऐसा? यह मानना ​​ठीक है कि उपयोगकर्ता के कंप्यूटर पर .NET 4.0 स्थापित किया जाएगा?

मैं स्पाइस आईई का उपयोग नहीं करना चाहता क्योंकि मैं आईई 9 के साथ संगत एक बनाना चाहता हूं। मैंने इस प्रश्न में सी ++ टैग भी जोड़ा है, क्योंकि अगर सी ++ में एक बनाना बेहतर है, तो मैं ऐसा कर सकता हूं।


आईई एक्सटेंशन के लिए राज्य वास्तव में बहुत दुखी है। आपके पास आईई 5 ब्राउज़र हेल्पर ऑब्जेक्ट का पुराना मॉडल है (हाँ, उन कुख्यात बीएचओ जिन्हें हर किसी को दिन में वापस अवरुद्ध करना पसंद है), टूलबार और आईई के लिए नए त्वरक। फिर भी, संगतता कभी-कभी टूट जाएगी। मैं आईई 6 के साथ टूटने वाले आईई 6 के लिए एक एक्सटेंशन बनाए रखने के लिए उपयोग करता था, इसलिए कुछ चीजें बदल गई हैं। अधिकांश भाग के लिए, जहां तक ​​मुझे पता है (मैंने वर्षों में बीएचओ को नहीं छूटा है) आपको अभी भी सक्रिय टेम्पलेट लाइब्रेरीज़ (माइक्रोसॉफ्ट के COM के लिए एसटीएल की तरह) का उपयोग करके कोड करने की आवश्यकता है और साथ ही यह केवल सी ++ के लिए है। आप सी # के साथ COM इंटरऑप कर सकते हैं और इसे सी # में करने से दूर हो सकते हैं, लेकिन यह संभवतः इसके लायक होने के लिए बहुत कठिन होगा। वैसे भी, यदि आप IE के लिए अपना एक्सटेंशन कोडिंग करने में रुचि रखते हैं (जो कि यदि आप अपने एक्सटेंशन को सभी प्रमुख ब्राउज़रों में उपलब्ध करना चाहते हैं तो यह संभव है) यहां आधिकारिक माइक्रोसॉफ्ट संसाधन हैं।

http://msdn.microsoft.com/en-us/library/aa753587(v=vs.85).aspx

और IE8 में नए त्वरक के लिए आप इसे देख सकते हैं।

http://msdn.microsoft.com/en-us/library/cc289775(v=vs.85).aspx

मैं सहमत हूं कि दस्तावेज़ीकरण भयानक है, और एपीआई काफी पुरानी हैं। फिर भी मुझे उम्मीद है कि यह मदद करता है।

संपादित करें: मुझे लगता है कि मैं यहां जानकारी का एक अंतिम स्रोत फेंक सकता हूं। मैं बीएचओ पर काम कर रहा था जब मैं अपने नोट्स के पीछे देख रहा था। और यह वह लेख है जिसने मुझे उनके साथ शुरू किया। यह पुराना है, लेकिन एटीएल इंटरफेस का एक अच्छा स्पष्टीकरण है जिसका उपयोग आप आईई बीएचओ (उदाहरण के लिए IObjectWithSite) के साथ काम करते समय करेंगे। मुझे लगता है कि यह बहुत अच्छी तरह से समझाया गया है और फिर मुझे बहुत मदद की। http://msdn.microsoft.com/en-us/library/bb250436.aspx मैंने ग्रेगसी पोस्ट किए गए उदाहरण की भी जांच की। यह कम से कम IE8 के साथ काम करता है, और यह वीएस 2010 के साथ संगत है, इसलिए यदि आप सी # करना चाहते हैं तो आप वहां शुरू कर सकते हैं और जॉन स्कीट की पुस्तक पर एक नज़र डालें। (गहराई द्वितीय संस्करण में सी #) अध्याय 13 में सी # 4 में नई सुविधाओं के बारे में जानकारी का एक अच्छा सौदा है जिसका उपयोग आप COM nicer के साथ बातचीत करने के लिए कर सकते हैं। (मैं अभी भी आपको सी ++ में अपना एडिन करने की सलाह दूंगा)


एक और अच्छा तरीका जांचना होगा:

http://www.crossrider.org

यह jquery के साथ जेएस पर आधारित एक ढांचा है जो आपको एक सामान्य जेएस कोड का उपयोग करके आईई, एफएफ और क्रोम के लिए ब्राउज़र एक्सटेंशन विकसित करने देता है। असल में ढांचा सभी बुरा काम करता है और आपको अपने एप्लिकेशन कोड लिखने के साथ छोड़ दिया जाता है।


मैं आपको 2002 में प्रकाशित पावेल ज़ोलिकोव के इस पोस्ट का गर्मजोशी से सुझाव देता हूं!

http://www.codeproject.com/Articles/2219/Extending-Explorer-with-Band-Objects-using-NET-and

यह बैंड ऑब्जेक्ट्स के उपयोग पर आधारित है और .NET 2.0 का उपयोग करके संकलित किया गया है। स्रोत कोड प्रदान किया गया है और विजुअल स्टूडियो 2013 के साथ अच्छी तरह से संकलित और संकलित करता है। जैसा कि आप पोस्ट टिप्पणियों पर पढ़ेंगे, यह आईई 11 और विंडोज 7 और विंडोज 10 पर पूरी तरह से अच्छा काम करता है। यह विंडोज 7 + एसपी 1 और आईई पर मेरे लिए पूरी तरह से अच्छा काम करता है। 11 आनंद लें!


मैं रॉबर्ट हार्वे से सहमत हूं, सी # 4.0 सुविधाओं में सुधार COM इंटरॉप। फिर से लिखने की बेहद जरूरी ज़रूरत में, पुराने सी # कोड का थोड़ा सा है।

http://www.codeproject.com/KB/cs/Attach_BHO_with_C_.aspx

यह एटीएल से बचकर और स्पार्टन COM के साथ जाकर चीजों को सरल बनाने का प्रयास है:

बीएचओ जाने के लिए सी ++ और कॉम


यदि आप पहिया को फिर से शुरू करने की कोशिश नहीं कर रहे हैं, तो आप IE के लिए एक्सप्रेस में शामिल करने का प्रयास कर सकते हैं। मैंने वीएसटीओ सामान के लिए उत्पाद का उपयोग किया है, और यह बहुत अच्छा है। इसके अलावा उनके पास एक सहायक मंच और त्वरित समर्थन है।


यह स्पष्ट रूप से हल किया गया है, लेकिन अन्य उपयोगकर्ताओं के लिए, मैं स्पाइसी फ्रेमवर्क की सिफारिश करता हूं । मैंने इसके आधार पर अपना खुद का विस्तार किया है। यह केवल इंटरनेट एक्सप्लोरर 7/8 आधिकारिक का समर्थन करता है, लेकिन मैंने परीक्षण किया कि इंटरनेट एक्सप्लोरर 6-10 (विंडोज एक्सपी से विंडोज 8 उपभोक्ता पूर्वावलोकन) पर और यह ठीक काम करता है । दुर्भाग्यवश नवीनतम रिलीज में कुछ बग थे, इसलिए मुझे उन्हें ठीक करना पड़ा और अपनी खुद की रिलीज की: http://archive.msdn.microsoft.com/SpicIE/Thread/View.aspx?ThreadId=5251


बिल्ड इवेंट्स टैब में, पोस्ट-बिल्ड इवेंट कमांड लाइन को सेट करें: (x64) नीचे सूचीबद्ध है

"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\x64\gacutil.exe" /if "$(TargetDir)$(TargetFileName)"    
"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe" /u "$(TargetDir)$(TargetFileName)"    
"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe" "$(TargetDir)$(TargetFileName)"

मैं बिल्ड इवेंट्स टैब चाहता हूं, पोस्ट-बिल्ड इवेंट कमांड लाइन को सेट करें (32 बिट ऑपरेटिंग सिस्टम)

"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\gacutil.exe" /if "$(TargetDir)$(TargetFileName)"    
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe" /u "$(TargetDir)$(TargetFileName)"    
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe" "$(TargetDir)$(TargetFileName)"




browser-extension