Chrome की तरह बेहतर ब्राउज़र के साथ .NET WebBrowser नियंत्रण को प्रतिस्थापित करना?


432

क्या किसी .NET ब्राउज़र में एक आधुनिक ब्राउज़र डालने का कोई आसान तरीका है?

जहां तक ​​मैं समझता हूं, WebBrowserनियंत्रण IE के लिए एक आवरण है , जो एक समस्या नहीं होगी सिवाय इसके कि ऐसा लगता है कि यह IE का एक बहुत पुराना संस्करण है , जो सभी के साथ CSS पेंच-अप, संभावित सुरक्षा जोखिमों के संदर्भ में बताता है (यदि रेंडरिंग इंजन को पैच नहीं किया गया था, तो क्या मैं वास्तव में zillion बफर अतिप्रवाह समस्याओं को ठीक करने की उम्मीद कर सकता हूं?), और अन्य मुद्दे।

मैं विजुअल स्टूडियो सी # (एक्सप्रेस संस्करण का उपयोग कर रहा हूं - क्या इससे यहां कोई फर्क पड़ता है?)

मैं अपने अनुप्रयोगों में एक अच्छे वेब ब्राउज़र को एकीकृत करना चाहूंगा। कुछ में, मैं इसका उपयोग केवल उपयोगकर्ता पंजीकरण प्रक्रिया, मेरी वेबसाइट की कुछ विशेषताओं के साथ इंटरफेस और उस आदेश की अन्य चीजों को संभालने के लिए करता हूं, लेकिन मेरे पास एक और एप्लिकेशन है, जिसे ध्यान में रखते हुए अधिक त्रुटि ... नियंत्रण की आवश्यकता होगी।

मुझे जरूरत है:

  • एक ब्राउज़र जो मेरे एप्लिकेशन की विंडो के अंदर एकीकृत हो सकता है (अलग विंडो नहीं)
  • सीएसएस, जेएस और अन्य वेब प्रौद्योगिकियों के लिए एक अच्छा समर्थन, किसी भी आधुनिक ब्राउज़र के बराबर
  • बुनियादी ब्राउज़र "नेविगेट", "वापस", "पुनः लोड" जैसे कार्य करता है ...
  • पेज कोड और आउटपुट के लिए उदार पहुंच।

मैं Chrome के बारे में सोच रहा था, क्योंकि यह BSD लाइसेंस के अंतर्गत आता है, लेकिन मैं IE के हाल के संस्करण से उतना ही खुश रहूंगा।

जितना संभव हो, मैं चीजों को सरल रखना चाहूंगा। सबसे अच्छा होगा यदि कोई मौजूदा WebBrowserनियंत्रण को पैच कर सकता है , जो पहले से ही लगभग 70% की आवश्यकता है, लेकिन मुझे नहीं लगता कि यह संभव है।

मुझे मोज़िला ( http://www.iol.ie/~locka/mozilla/control.htm ) के लिए एक सक्रिय नियंत्रण मिला है, लेकिन ऐसा लगता है कि यह एक पुराना संस्करण है, इसलिए यह आवश्यक रूप से सुधार नहीं है।

मैं सुझावों के प्रति उदार हूं


19
आप ऐसा क्यों कहते हैं कि WebBrowser नियंत्रण IE के पुराने संस्करण का उपयोग करता है? यह उपयोगकर्ता के सिस्टम पर इंस्टॉल किए गए संस्करण का उपयोग करता है, हालांकि IE8 WebBrowser IE7 रेंडरिंग में डिफ़ॉल्ट रूप से प्रकट होता है: blogs.msdn.com/ie/archive/2009/03/10/…
टिम रॉबिन्सन

17
क्योंकि यह मेरी मशीन पर ऐसा नहीं दिखता है। मेरे पास IE8 स्थापित है, लेकिन नियंत्रण दिखाता है कि मैं IE के बाद से नहीं दिख रहा है मुद्दों को दिखाता है। एक बहुत ही सरल प्रवेश फार्म, सीएसएस के एक स्पर्श के साथ 2 क्षेत्रों में एक विकृत प्रदर्शन किया है, और कुछ जावास्क्रिप्ट प्रदर्शन काम नहीं करता है, जबकि यह प्रदर्शित करता है IE8 में ठीक है, फ़ायरफ़ॉक्स, क्रोम, ओपेरा ... तो मैंने मान लिया कि रेंडरिंग इंजन एक पुराना था। मैं उसके बारे में पूरी तरह से गलत हो सकता हूं और शायद समस्या वास्तव में मेरे विचार से अलग है।
सिल्वरड्रेग

3
@ सिल्वरड्रैग: आप गलत हैं। यह आपके सिस्टम पर नवीनतम IE का उपयोग करता है। हालाँकि, मैंने कहीं पढ़ा है कि WebBrowser नियंत्रण में स्टैंडअलोन ब्राउज़र की तुलना में एक मजबूत बैकवर्ड-संगतता समस्या है। उदाहरण के लिए IE8 में IE7 मोड को चालू करने के लिए क्लिक करने के लिए एक आइकन हो सकता है। आपके कार्यक्रम के हिस्से के रूप में, यह संभव नहीं है, इसलिए नियंत्रण संगतता के लिए पहले मोड में चूक करता है। OTOH, मैंने यह नहीं पढ़ा कि इसे "IE8 मोड" का उपयोग करने के लिए कैसे सेट किया जाए।
जॉन सॉन्डर्स

55
दरअसल, जॉन सैंडर्स, आप गलत हैं। यह ie4 का उपयोग करता है और आपको वर्तमान का उपयोग करने के लिए यह बताने के लिए रजिस्ट्री मान को बदलने की आवश्यकता है। "फ़ीचर मोड एमुलेशन" देखें और आपको उर के उत्तर मिलेंगे, हाल ही में बदले गए, इसमें कीवर्ड मूल को शामिल किया गया था, लेकिन उन्होंने इसे बदल दिया, मैंने "वेबब्रोसर कंट्रोल" के साथ जिन कीवर्ड का उल्लेख किया था, उन्हें मिल जाएगा और आपको msdn लेख मिल जाएगा।
Erx_VB.NExT.Coder

8
डिफ़ॉल्ट रूप से, एक होस्टेड WebBrowserनियंत्रण IE7 एमुलेशन का उपयोग करता है, जब तक कि अन्यथा निर्देश न दिया गया हो FEATURE_BROWSER_EMULATION। यह यहाँ प्रलेखित है: blogs.msdn.com/b/askie/archive/2009/03/23/…
noseratio

जवाबों:


171

चेकआउट CefSharp .Net बाइंडिंग, एक परियोजना जिसे मैंने कुछ समय पहले शुरू किया था, शुक्र है कि समुदाय द्वारा उठाया गया और कुछ अद्भुत हो गया।

परियोजना क्रोमियम एंबेडेड फ्रेमवर्क को लपेटती है और इसका उपयोग कई प्रमुख परियोजनाओं में किया जाता है, जिसमें आरडीआईओ के विंडोज क्लाइंट, विंडोज के लिए फेसबुक मैसेंजर और विंडोज के लिए जीथब शामिल हैं।

यह WPF और Winforms के लिए ब्राउज़र नियंत्रण सुविधाएँ और सुविधाओं और विस्तार बिंदुओं के टन है। क्रोमियम पर आधारित होने के कारण यह तेजी से भी तेज होता है।

नुगेट से इसे पकड़ो: Install-Package CefSharp.WpfयाInstall-Package CefSharp.WinForms

उदाहरण देखें और अपने विचार / प्रतिक्रिया / पुल-अनुरोध: https://github.com/cefsharp/CefSharp दें

बीएसडी लाइसेंस प्राप्त है


2
मैंने OWS से CEfSharp पर स्विच किया, और मैं यह कह सकता हूं कि यह बहुत उच्च गुणवत्ता और सक्रिय समुदाय का है। इसे प्यार करना। github.com/cefsharp/CefSharp
Vin

1
CefSharp महान है, लेकिन इस बात से अवगत रहें कि लाइब्रेरी फेलियर लार्ज (20+ mb लास्ट मैंने देखी) हैं, इसलिए वे अधिक हल्के प्रोजेक्ट के लिए सही नहीं हो सकते हैं।
स्काइल

1
@Anguyen हाँ आप कर सकते हैं
chillitom

1
यह जानकर बहुत खुशी हुई कि यह आप हैं जिन्होंने इस परियोजना को शुरू किया है! हाल ही में मैंने cefsharp का उपयोग किया था, हालांकि, मैं देख सकता था कि लाइब्रेरी का आकार 80+ एमबी है जो बहुत बड़ा है, लेकिन आवेदन के उचित कामकाज (विशेष रूप से चिकनी प्रतिपादन) के लिए आवश्यक है। क्या इसे कम करने का कोई तरीका है?
आदित्य बोकाडे

5
इससे मेरा प्रोजेक्ट टूट गया। Winforms nuget पैकेज स्थापित करने के बाद सभी संदर्भ टूट गए।
टोडरमो

84

यदि आप नहीं जानते, तो क्रोम का उपयोग करता है (वेब ​​का) एक कांटा, जो सफारी द्वारा भी उपयोग किया जाता है। यहाँ कुछ सवाल हैं जो एक ही नस के हैं:

वेबकीट एक अन्य उत्तर के रूप में महान नहीं है, एक संस्करण अब काम नहीं करता है (Google कोड एक) और मोनो एक प्रयोगात्मक है। यह अच्छा होगा यदि किसी ने इसके लिए एक सभ्य .NET आवरण बनाने का प्रयास किया है, लेकिन ऐसा कुछ नहीं है जो कोई भी करना चाहता है - जो कि आश्चर्य की बात है कि इसे अब HTML5 के लिए समर्थन और कई अन्य विशेषताएं हैं जो IE (8) ) इंजन की कमी है।

अपडेट (2014)

नई दोहरे लाइसेंस वाली परियोजना है जो आपको Awesomium नामक अपने .NET अनुप्रयोगों में Chrome को एम्बेड करने की अनुमति देती है । यह एक .NET एपीआई के साथ आता है, लेकिन प्रतिपादन के लिए काफी कुछ हैक की आवश्यकता होती है (उदाहरण ब्राउज़र विंडो को एक बफर में खींचते हैं, बफर को एक छवि के रूप में चित्रित करते हैं और एक टाइमर पर ताज़ा करते हैं)।

मुझे लगता है कि यह युद्धक्षेत्र 3 में उत्पत्ति द्वारा उपयोग किया जाने वाला ब्राउज़र है।

अपडेट (2016)

अब DotnetBrowser , Awesomium का एक वाणिज्यिक विकल्प है। यह क्रोमियम पर आधारित है।


धन्यवाद। मैं गेको रैपर पर एक नजर डालूंगा। हालांकि एक बात, मूल उत्तर कहता है कि "आपको केवल मोज़िला एक्टिवएक्स कंट्रोल रजिस्टर करना होगा" और मैंने सोचा कि एक्सप्रेस संस्करण अतिरिक्त नियंत्रणों को पंजीकृत नहीं कर सकते। क्या मुझसे साफ़ - साफ़ कुछ चीज़ चूक रही है?
सिल्वरड्रेग

4
@ शो के एडिशन में जितने कंट्रोल की जरूरत हो उतने रजिस्टर कर सकते हैं। वे क्या नहीं करेंगे आपको दृश्य स्टूडियो में प्लग इन स्थापित करने देंगे।
जोएल कोएहॉर्न

1
मेरे पास C # के साथ WebKit का उपयोग करने के बहुत बुरे अनुभव हैं और अंत में मुझे डिफ़ॉल्ट वेब ब्राउज़र घटक पर बसना पड़ा जो .NET के साथ आता है
सुमित घोष

1
इस तिथि के अनुसार, उपरोक्त प्रोजेक्ट व्यवहार्य ड्रॉप-इन प्रतिस्थापन नहीं हैं। कंपाइलर त्रुटियां galore + अस्थिरता। Awesomium, पूर्ण और निरा कचरा है।
१६:१० बजे क्रैंग प्राइम

"मुझे लगता है कि यह युद्धक्षेत्र 3 में उत्पत्ति द्वारा उपयोग किया जाने वाला ब्राउज़र है।" यह गलत है। मुझे यह पता है क्योंकि मुझे इस ऐप को विंडोज़ दस पर उपयोग करने के लिए मजबूर करना पड़ा क्योंकि जब इसे किनारे करने के लिए डिफ़ॉल्ट किया तो यह काम नहीं किया। यह कुछ समय पहले, संभवतः एक हल किया गया मुद्दा था।
वेउथिस

64

मैं कुछ दिनों के लिए C # वेब ब्राउज़र घटक के विकल्प का परीक्षण कर रहा हूं और यहां मेरी सूची है:

1. नए IE संस्करण 8,9 का उपयोग करना:

वेब ब्राउज़र घटक IE7 नहीं IE8 है? इसे कैसे बदलें?

पेशेवरों:

  • इसे चलाने के लिए ज्यादा मेहनत की जरूरत नहीं है
  • कुछ HTML5 / CSS3 का समर्थन करें तो IE9, पूर्ण यदि IE10

विपक्ष:

  • लक्ष्य मशीन में IE संस्करण स्थापित होना चाहिए, IE10 अभी भी Win7 के पूर्वावलोकन में है

इसके लिए बहुत काम करने की आवश्यकता नहीं है और आपको कुछ HTML5 और CSS3 समर्थन मिल सकते हैं, हालांकि IE9 में कुछ बेहतरीन CSS3 और HTML5 सुविधाओं का अभाव है। लेकिन मुझे यकीन है कि आप IE10 को उसी तरह से चला सकते हैं। समस्या यह होगी कि लक्ष्य प्रणाली को IE10 स्थापित करना होगा, और जब से विंडोज 7 पर पूर्वावलोकन है तब भी मैं इसके खिलाफ सुझाव दूंगा।

2. OpenWebKitSharp

OpenWebKitSharp WebKit.NET 0.5 परियोजना पर आधारित वेबकिट इंजन के लिए एक .net आवरण है। WebKit Chrome / Safari द्वारा उपयोग किया जाने वाला एक लेआउट इंजन है

पेशेवरों:

  • सक्रिय रूप से विकसित
  • HTML5 / CSS3 समर्थन

विपक्ष:

  • कई सुविधाओं को लागू नहीं किया गया
  • X64 का समर्थन नहीं करता (x86 के लिए ऐप बनाया जाना चाहिए)

OpenWebKit काफी अच्छा है, हालांकि कई विशेषताओं को अभी तक लागू नहीं किया गया है, मैंने कुछ मुद्दों को दृश्य स्टूडियो के साथ उपयोग करने का अनुभव किया है जो यहाँ अशक्त वस्तु संदर्भ को फेंक देता है और फिर डिज़ाइन मोड में, कुछ js समस्याएँ हैं। इसका उपयोग करने वाला हर कोई लगभग तुरंत ही सूचना देगा कि एलएस अलर्ट कुछ नहीं करता है। माउसअप, मूसडाउन ... आदि जैसे कार्यक्रम काम नहीं करते, js ड्रैग और ड्रॉप छोटी गाड़ी वगैरह हैं।

मुझे इसे स्थापित करने में कुछ कठिनाइयाँ भी हुई क्योंकि इसके लिए वीसी के विशिष्ट संस्करण को स्थापित करने की आवश्यकता है, इसलिए अपवाद के बाद मैंने इवेंट लॉग को देखा, वीसी के संस्करण को पाया और इसे स्थापित किया।

3. गेकोएफएक्स

पेशेवरों:

  • मोनो पर काम करता है
  • सक्रिय रूप से विकसित
  • HTML5 / CSS3 समर्थन

विपक्ष:

  • Do̶e̶s̶n̶'̶t̶ ̶s̶u̶p̶p̶o̶r̶t̶ ̶x̶6̶4̶ ̶ (̶A̶p̶p̶ ̶m̶u̶s̶t̶ ̶b̶e̶ ̶b̶u̶i̶l̶t̶r̶r̶r̶r̶r)

GeckoFX WinForms Applications में एम्बेड करने के लिए एक क्रॉस प्लेटफॉर्म Webrowser नियंत्रण है। यह विंडोज पर .NET के साथ और लिनक्स पर मोनो के साथ इस्तेमाल किया जा सकता है। गेको फ़ायरफ़ॉक्स द्वारा उपयोग किया जाने वाला एक लेआउट इंजन है।

मैंने कुछ जानकारियों से टकराते हुए कहा कि गेकोएफएक्स सक्रिय रूप से विकसित नहीं है जो सच नहीं है, निश्चित रूप से यह फ़ायरफ़ॉक्स के पीछे हमेशा एक या दो संस्करण है लेकिन यह सामान्य है, मैं वास्तव में गतिविधि और नियंत्रण से प्रभावित था। यह वह सब कुछ करता है जिसकी मुझे ज़रूरत थी, लेकिन मुझे इसे चलाने के लिए कुछ समय चाहिए था, इसे चलाने के लिए यहाँ थोड़ा ट्यूटोरियल है:

  1. GeckoFx-Windows-16.0-0.2 डाउनलोड करें, यहां आप जांच सकते हैं कि क्या नया GeckoFX उपलब्ध है
  2. दो डाउनलोड किए गए dll के संदर्भ जोड़ें
  3. चूंकि गेकोएफएक्स रैपर है जिसे आपको XulRunner की आवश्यकता है, संस्करण सूची पर जाएं यह देखने के लिए कि आपको किसकी आवश्यकता है
  4. अब जब हमें पता है कि हमें XulRunner के किस संस्करण की आवश्यकता है, तो हम मोज़िला XulRunner रिलीज़ पर जाते हैं, संस्करण फ़ोल्डर में जाते हैं -> runtimes -> xulrunner- (your_version) .en-US.win32.zip, हमारे मामले में xulrunner-16.0.en-en। US.win32.zip
  5. सब कुछ अनज़िप करें और सभी फाइलों को अपने बिन \ डिबग में कॉपी करें (या यदि आपका प्रोजेक्ट रिलीज़ होने के लिए तैयार है)
  6. अपने फ़ॉर्म के विज़ुअल स्टूडियो डिज़ाइनर पर जाएं, टूलबॉक्स में जाएं, अंदर दाईं ओर क्लिक करें -> आइटम चुनें -> ब्राउज़ करें -> डाउनलोड किए गए GeckoFX winforms dll फ़ाइल खोजें -> ठीक है
  7. अब आपके पास नया नियंत्रण GeckoWebBrowser होना चाहिए

यदि आपका वास्तव में Chrome का उपयोग करना है , तो Awesomium नामक इस उत्पाद पर एक नज़र डालें , यह गैर-वाणिज्यिक परियोजनाओं के लिए मुफ़्त है, लेकिन वाणिज्यिक के लिए लाइसेंस कुछ हज़ार डॉलर है।


4
GeckoFx को पाने और चलाने का बहुत अच्छा वर्णन। +1
एलेक्स Essilfie

जब जियोकॉफ-विन्फ़ॉर्म के निर्माण के लिए मुझे 4 gtk # पुस्तकालयों (atk-sharp, gdk-sharp, glib-sharp और gtk-sharp) की आवश्यकता थी, इसलिए मुझे पहले मोनो स्थापित करना पड़ा।
बर्नहार्ड्र्सच

यह उत्तर शानदार है।
माइक कोल

वास्तव में एक महान विश्लेषण। मैं जानना चाहता था कि क्या आप सी # एप्लिकेशन के साथ एवेज़ोमियम का परीक्षण करने के लिए हुए थे। क्या आपका उस पर कोई कहना है? मैंने अभी तक इसका परीक्षण नहीं किया है, लेकिन मेरे द्वारा उनके पृष्ठ पर उल्लिखित ट्रस्टियों के पैनल को देखने के बाद मुझे विश्वसनीय लगता है।
अब्दुल रहमान

2
@Wayne यदि आप इसे सही करना चाहते हैं, तो आपको अपने प्रोजेक्ट में एक फ़ोल्डर बनाना चाहिए या एक स्पैपरेट प्रोजेक्ट बनाना चाहिए जिसमें आप सभी फाइलें, जेको एफएक्स डीएलएस और एक्सल रनर फाइलें शामिल करेंगे और उन्हें हमेशा कॉपी करने के लिए सेट करेंगे, फिर हर एक्शन पर उन्हें मिलेगा। आपके बिल्ड / डिबग फ़ोल्डर में कॉपी किया गया या प्रकाशित किया गया यदि आप VS से प्रकाशित करते हैं, तो Xpcom.Initialize पद्धति भी है जिसे आपको कॉल करना चाहिए और आप इसे xul रनर फाइल पथ से पास कर सकते हैं, आशा है कि मदद करता है
प्रारूप

41

मुझे एक ही समस्या थी, WebBrowser IE के पुराने संस्करण का उपयोग कर रहा था, कुछ googling के साथ मैं निम्नलिखित कोड में आया था जो रजिस्ट्री में बदलाव करता है और WebBrowser को नवीनतम IE संस्करण का उपयोग करना संभव बनाता है:

 public enum BrowserEmulationVersion
    {
        Default = 0,
        Version7 = 7000,
        Version8 = 8000,
        Version8Standards = 8888,
        Version9 = 9000,
        Version9Standards = 9999,
        Version10 = 10000,
        Version10Standards = 10001,
        Version11 = 11000,
        Version11Edge = 11001
    }
    public static class WBEmulator
    {
        private const string InternetExplorerRootKey = @"Software\Microsoft\Internet Explorer";

        public static int GetInternetExplorerMajorVersion()
        {
            int result;

            result = 0;

            try
            {
                RegistryKey key;

                key = Registry.LocalMachine.OpenSubKey(InternetExplorerRootKey);

                if (key != null)
                {
                    object value;

                    value = key.GetValue("svcVersion", null) ?? key.GetValue("Version", null);

                    if (value != null)
                    {
                        string version;
                        int separator;

                        version = value.ToString();
                        separator = version.IndexOf('.');
                        if (separator != -1)
                        {
                            int.TryParse(version.Substring(0, separator), out result);
                        }
                    }
                }
            }
            catch (SecurityException)
            {
                // The user does not have the permissions required to read from the registry key.
            }
            catch (UnauthorizedAccessException)
            {
                // The user does not have the necessary registry rights.
            }

            return result;
        }
        private const string BrowserEmulationKey = InternetExplorerRootKey + @"\Main\FeatureControl\FEATURE_BROWSER_EMULATION";

        public static BrowserEmulationVersion GetBrowserEmulationVersion()
        {
            BrowserEmulationVersion result;

            result = BrowserEmulationVersion.Default;

            try
            {
                RegistryKey key;

                key = Registry.CurrentUser.OpenSubKey(BrowserEmulationKey, true);
                if (key != null)
                {
                    string programName;
                    object value;

                    programName = Path.GetFileName(Environment.GetCommandLineArgs()[0]);
                    value = key.GetValue(programName, null);

                    if (value != null)
                    {
                        result = (BrowserEmulationVersion)Convert.ToInt32(value);
                    }
                }
            }
            catch (SecurityException)
            {
                // The user does not have the permissions required to read from the registry key.
            }
            catch (UnauthorizedAccessException)
            {
                // The user does not have the necessary registry rights.
            }

            return result;
        }
        public static bool SetBrowserEmulationVersion(BrowserEmulationVersion browserEmulationVersion)
        {
            bool result;

            result = false;

            try
            {
                RegistryKey key;

                key = Registry.CurrentUser.OpenSubKey(BrowserEmulationKey, true);

                if (key != null)
                {
                    string programName;

                    programName = Path.GetFileName(Environment.GetCommandLineArgs()[0]);

                    if (browserEmulationVersion != BrowserEmulationVersion.Default)
                    {
                        // if it's a valid value, update or create the value
                        key.SetValue(programName, (int)browserEmulationVersion, RegistryValueKind.DWord);
                    }
                    else
                    {
                        // otherwise, remove the existing value
                        key.DeleteValue(programName, false);
                    }

                    result = true;
                }
            }
            catch (SecurityException)
            {
                // The user does not have the permissions required to read from the registry key.
            }
            catch (UnauthorizedAccessException)
            {
                // The user does not have the necessary registry rights.
            }

            return result;
        }

        public static bool SetBrowserEmulationVersion()
        {
            int ieVersion;
            BrowserEmulationVersion emulationCode;

            ieVersion = GetInternetExplorerMajorVersion();

            if (ieVersion >= 11)
            {
                emulationCode = BrowserEmulationVersion.Version11;
            }
            else
            {
                switch (ieVersion)
                {
                    case 10:
                        emulationCode = BrowserEmulationVersion.Version10;
                        break;
                    case 9:
                        emulationCode = BrowserEmulationVersion.Version9;
                        break;
                    case 8:
                        emulationCode = BrowserEmulationVersion.Version8;
                        break;
                    default:
                        emulationCode = BrowserEmulationVersion.Version7;
                        break;
                }
            }

            return SetBrowserEmulationVersion(emulationCode);
        }
        public static bool IsBrowserEmulationSet()
        {
            return GetBrowserEmulationVersion() != BrowserEmulationVersion.Default;
        }
    } 

आपको बस एक क्लास बनाने और इस कोड को उसमें डालने की जरूरत है, फिर प्रोग्राम शुरू होने पर निम्नलिखित कोड चलाएं:

 if (!WBEmulator.IsBrowserEmulationSet())
            {
                WBEmulator.SetBrowserEmulationVersion();
            }

VB.NET:

Imports Microsoft.Win32
Imports System
Imports System.Collections.Generic
Imports System.IO
Imports System.Linq
Imports System.Security
Imports System.Text
Imports System.Threading.Tasks

Public Enum BrowserEmulationVersion
    [Default] = 0
    Version7 = 7000
    Version8 = 8000
    Version8Standards = 8888
    Version9 = 9000
    Version9Standards = 9999
    Version10 = 10000
    Version10Standards = 10001
    Version11 = 11000
    Version11Edge = 11001
End Enum


Public Class WBEmulator
    Private Const InternetExplorerRootKey As String = "Software\Microsoft\Internet Explorer"
    Public Shared Function GetInternetExplorerMajorVersion() As Integer

        Dim result As Integer

        result = 0

        Try
            Dim key As RegistryKey
            key = Registry.LocalMachine.OpenSubKey(InternetExplorerRootKey)
            If key IsNot Nothing Then
                Dim value As Object = If(key.GetValue("svcVersion", Nothing), key.GetValue("Version", Nothing))

                Dim Version As String
                Dim separator As Integer
                Version = value.ToString()
                separator = Version.IndexOf(".")
                If separator <> -1 Then
                    Integer.TryParse(Version.Substring(0, separator), result)
                End If
            End If

        Catch ex As SecurityException
            'The user does Not have the permissions required to read from the registry key.
        Catch ex As UnauthorizedAccessException
            'The user does Not have the necessary registry rights.
        Catch

        End Try
        GetInternetExplorerMajorVersion = result
    End Function
    Private Const BrowserEmulationKey = InternetExplorerRootKey + "\Main\FeatureControl\FEATURE_BROWSER_EMULATION"

    Public Shared Function GetBrowserEmulationVersion() As BrowserEmulationVersion

        Dim result As BrowserEmulationVersion
        result = BrowserEmulationVersion.Default

        Try
            Dim key As RegistryKey = Registry.CurrentUser.OpenSubKey(BrowserEmulationKey, True)
            If key IsNot Nothing Then
                Dim programName As String
                Dim value As Object
                programName = Path.GetFileName(Environment.GetCommandLineArgs()(0))
                value = key.GetValue(programName, Nothing)
                If value IsNot Nothing Then
                    result = CType(Convert.ToInt32(value), BrowserEmulationVersion)
                End If
            End If
        Catch ex As SecurityException
            'The user does Not have the permissions required to read from the registry key.
        Catch ex As UnauthorizedAccessException
            'The user does Not have the necessary registry rights.
        Catch

        End Try

        GetBrowserEmulationVersion = result
    End Function
    Public Shared Function SetBrowserEmulationVersion(BEVersion As BrowserEmulationVersion) As Boolean

        Dim result As Boolean = False

        Try
            Dim key As RegistryKey = Registry.CurrentUser.OpenSubKey(BrowserEmulationKey, True)
            If key IsNot Nothing Then
                Dim programName As String = Path.GetFileName(Environment.GetCommandLineArgs()(0))
                If BEVersion <> BrowserEmulationVersion.Default Then
                    'if it's a valid value, update or create the value
                    key.SetValue(programName, CType(BEVersion, Integer), RegistryValueKind.DWord)
                Else
                    'otherwise, remove the existing value
                    key.DeleteValue(programName, False)
                End If
                result = True
            End If
        Catch ex As SecurityException

            ' The user does Not have the permissions required to read from the registry key.

        Catch ex As UnauthorizedAccessException

            ' The user does Not have the necessary registry rights.

        End Try

        SetBrowserEmulationVersion = result
    End Function


    Public Shared Function SetBrowserEmulationVersion() As Boolean
        Dim ieVersion As Integer
        Dim emulationCode As BrowserEmulationVersion
        ieVersion = GetInternetExplorerMajorVersion()

        If ieVersion >= 11 Then

            emulationCode = BrowserEmulationVersion.Version11
        Else

            Select Case ieVersion
                Case 10
                    emulationCode = BrowserEmulationVersion.Version10
                Case 9
                    emulationCode = BrowserEmulationVersion.Version9
                Case 8
                    emulationCode = BrowserEmulationVersion.Version8
                Case Else
                    emulationCode = BrowserEmulationVersion.Version7
            End Select
        End If

        SetBrowserEmulationVersion = SetBrowserEmulationVersion(emulationCode)
    End Function

    Public Shared Function IsBrowserEmulationSet() As Boolean
        IsBrowserEmulationSet = GetBrowserEmulationVersion() <> BrowserEmulationVersion.Default
    End Function
End Class

आप इसका उपयोग कर सकते हैं जैसे:

If Not WBEmulator.IsBrowserEmulationSet() Then
    WBEmulator.SetBrowserEmulationVersion()
End If

1
अति उत्कृष्ट!! आपको बहुत - बहुत धन्यवाद!
बेन

1
पाइथन (एक आयरनपीथॉन एप्लिकेशन पर काम करना) के लिए अनुवादित और इसने पूरी तरह से काम किया। धन्यवाद!
डेविड

1
जो मेरी जान बचाता है! धन्यवाद
नीरज दुबे

1
यह शानदार है लेकिन क्या अनुकरण संस्करण को रीसेट करना संभव है? ऐसा लगता है कि संस्करण केवल एक बार WinForms अनुप्रयोग में सेट किया जा सकता है। जबकि यह संभव है कि ऐसा प्रतीत होता है कि प्रभाव को फिर से सेट किया जा सकता है, एक बार सेट होने पर, और रजिस्ट्री में रीसेट करने पर यह WinForms ऐप में नए रजिस्ट्री मानों के साथ फिर से पढ़ा नहीं जा रहा है।
cymorg

1
@ डेरेन एमबी जहां तक ​​मुझे पता है कि यह IE11 का उपयोग करता है
अश्कान मोबयेन खिबानी

27

Webbrowser नियंत्रण के लिए IE संस्करण सेट करने के लिए आप रजिस्ट्री का उपयोग कर सकते हैं। यहां जाएं: HKLM \ SOFTWARE \ Microsoft \ Internet Explorer \ Main \ FeatureControl \ FEATURE_BROWSER_EMULATION और "yourApplicationName.exe" को अपने ब्राउज़र के मान के साथ जोड़कर देखें-emulation ब्राउज़र के मूल्य को देखने के लिए, लिंक देखें: http://msdn.microsoft.com/en-us-us /library/ee330730%28VS.85%29.aspx#browser_emulation


10
और यदि आप दृश्य स्टूडियो में डिबगिंग कर रहे हैं, तो आपको संभवतः "yourApplicationName.vshost.exe" का उपयोग करना होगा
newenglander

3
और यदि आप दृश्य स्टूडियो में डिबगिंग कर रहे हैं, तो आप शायद अपने प्रोजेक्ट गुणों के डीबग टैब पर "विज़ुअल स्टूडियो होस्टिंग प्रक्रिया को सक्षम करें" को अनचेक कर सकते हैं। फिर आप "एक्सशॉस्ट" भाग के बिना अपने exe नाम का उपयोग कर सकते हैं।
डैनियल व्यगोलोव

1
@golavaxy क्या आप इसकी मदद कर सकते हैं, मैंने आपके निर्देशों की कोशिश की और आपके द्वारा दिए गए लिंक पर निर्देशों का उपयोग कर रहा है लेकिन यह अभी भी काम नहीं करता है। जब मैं WebBrowser नियंत्रण का उपयोग करके WhatIsMyBrowser.com पर जाता हूं, तो यह मुझे i7 में यानी 7 संगतता मोड में ie11 BUT का उपयोग करने के लिए कहता है और कई वेबसाइटें काम करने से इनकार करती हैं और मुझे "कृपया अपना ब्राउज़र अपग्रेड करें" संदेश देती हैं। मैं वेबब्रोसर नियंत्रण को नवीनतम संस्करण के उपयोग के लिए कैसे मजबूर कर सकता हूं जो कि स्थापित है (यानी 11) इस तरह से काम नहीं करता है, मैंने इसे सौ बार आज़माया है।
jay_t55

धन्यवाद, यह काम किया और मेरे दिन को बचाया
T ,n Nguyên

18

पर नज़र Mono.WebBrowser नियंत्रण - WinForms में (ActiveX का उपयोग किए बिना) (के रूप में Firefox द्वारा प्रयुक्त) या वेबकिट (के रूप में सफारी द्वारा प्रयुक्त) यह या तो छिपकली एम्बेड करता है।


16

मुझे पता है कि यह एक 'प्रतिस्थापन' WebBrowser नियंत्रण नहीं है, लेकिन मैं कुछ भयानक मुद्दों को प्रस्तुत कर रहा था, जबकि एक पेज दिखा रहा था जो कि लेआउट आदि के लिए बूटस्ट्रैप 3+ का उपयोग कर रहा था और फिर मुझे एक पोस्ट मिली जिसमें सुझाव दिया गया था कि मैं निम्नलिखित का उपयोग करता हूं। जाहिरा तौर पर यह IE के लिए विशिष्ट है और इसे प्रतिपादन के लिए क्लाइंट मशीन पर मिली नवीनतम भिन्नता का उपयोग करने के लिए कहता है (इसलिए यह IE7 का उपयोग नहीं करेगा क्योंकि मेरा मानना ​​है कि यह डिफ़ॉल्ट है)

तो बस डाल:

<meta http-equiv="X-UA-Compatible" content="IE=Edge" />

आपके दस्तावेज़ के मुख्य भाग में कहीं।

यदि निश्चित रूप से यह आपके दस्तावेज़ नहीं है, तो यह स्पष्ट रूप से मदद नहीं करेगा (हालांकि मैं व्यक्तिगत रूप से इसे एक सुरक्षा छेद मानता हूं यदि आप वेबब्रोसर नियंत्रण के माध्यम से अपने द्वारा बनाए गए पृष्ठ नहीं पढ़ रहे हैं - तो बस एक वेबब्रोसर का उपयोग क्यों नहीं करें!)

सौभाग्य।


आप एक पीसी IE7 चलाने पर काम करने के लिए इस चाहते हैं, यह डाल नहीं कहीं में <head>, के पहले बच्चे के रूप में डाल दिया <head>। हमें यह पता लगाने में थोड़ा समय लगा।
सिल्वेन

क्षमा करें, मेरा मतलब है IE8 मेरी पिछली टिप्पणी में IE7 नहीं। तो IE8 पर, यदि आप <meta>के पहले बच्चे के रूप में जगह नहीं है <head>, यह संगतता मोड में चलेगा, किनारे मोड में नहीं।
सिल्वेन

मैं एक विजेता ऐप में वेबब्रोसर प्लगइन का उपयोग कर रहा था और यह एक बहुत बड़ी मदद थी। मैं जिस पेज को हिट कर रहा था वह jquery & angularjs का उपयोग कर रहा था, जो घुट रहा था क्योंकि उसे लगा कि IE7 स्थापित होने के बावजूद भी ब्राउज़र IE7 था।
किविलीस

मेरे लिए वह काम! आप उदाहरण के लिए IE के किसी विशेष संस्करण में सेट करने के लिए भी इसका उपयोग कर सकते हैं: <meta http-equiv = "X-UA- संगत" सामग्री = "IE = 10" /> और हमेशा ब्राउज़र 10 के रूप में काम करता है (बेशक आपको ज़रूरत है) एक ही संस्करण या उच्चतर स्थापित करने के लिए
फ्रीडेलव्यूसर

यह मेरे usecase के लिए एकदम सही है। मैं अच्छे HTML प्रारूप की रिपोर्ट दिखाना चाहता हूं। वहां बहुत सीएसएस सामग्री पहले से ही उपलब्ध है। यह क्रोम / फ़ायरफ़ॉक्स को एम्बेड करने की तुलना में बेहतर दृष्टिकोण है।
एमडी लफी

13

DotNetBrowser लाइब्रेरी पर एक नज़र डालें । यह क्रोमियम-आधारित WPF और WinForms ब्राउज़र नियंत्रण प्रदान करता है, जो .NET अनुप्रयोग में एम्बेड करना काफी आसान है। यह HTML5, CSS3 और जावास्क्रिप्ट सहित सभी आधुनिक वेब मानकों का समर्थन करता है। प्रस्तुत पृष्ठ बिल्कुल Google Chrome जैसा दिखता है।

लाइब्रेरी को क्रोमियम की मल्टी-प्रोसेस आर्किटेक्चर विरासत में मिलती है - प्रत्येक वेब पेज को एक अलग क्रोमियम प्रक्रिया में प्रस्तुत किया जाता है, और प्लगइन क्रैश या वेब पेज पर किसी अन्य अप्रत्याशित त्रुटि के बाद भी एप्लिकेशन काम करना जारी रखेगा।

DotNetBrowser द्वारा प्रदान की गई कुछ अन्य उपयोगी विशेषताएं यहां दी गई हैं: घटनाओं को लोड करना, नेटवर्क गतिविधि को संभालना, प्रॉक्सी को कॉन्फ़िगर करना, उपयोगकर्ता की क्रियाओं का अनुकरण करना, कुकीज़ के साथ काम करना, डोम को एक्सेस करना और डोम इवेंट्स सुनना, .NET से जावास्क्रिप्ट को कॉल करना संभव है। और इसके विपरीत, वेब पेज पर वेब कैमरा और माइक्रोफोन का उपयोग करें, WebRTC- आधारित संचार सेट अप करें, और अधिक

की जाँच करें API संदर्भ अधिक जानकारी के लिए।

नीचे दिया गया कोड स्निपेट प्रदर्शित करता है कि ब्राउज़र व्यू कैसे बनाएं, इसे फ़ॉर्म में एम्बेड करें और URL लोड करें:

using System.Windows.Forms;
using DotNetBrowser;
using DotNetBrowser.WinForms;

namespace WinForms.DotNetBrowser
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            BrowserView browserView = new WinFormsBrowserView();
            Controls.Add((Control) browserView);
            browserView.Browser.LoadURL("http://www.youtube.com");
        }
    }
}

एक बार जब आप ऊपर दिए गए उदाहरण को चलाते हैं तो आपको निम्न आउटपुट मिलेंगे:

यहां छवि विवरण दर्ज करें

पुस्तकालय व्यावसायिक है। वाणिज्यिक लाइसेंस में विभिन्न टीम आकारों के लिए समर्थन पैकेज शामिल हैं। पुस्तकालय के स्रोत कोड को खरीदना भी संभव है।

अपने स्वयं के पृष्ठ के अलावा घटक NuGet पैकेज और विज़िक्स स्टूडियो मार्केटप्लेस में VSIX पैकेज के रूप में उपलब्ध है ।


16
इस उत्पाद की उच्च कीमत से सावधान रहें
jjxtra

3
यह खुला स्रोत नहीं है, यह लाइसेंस सस्ता नहीं है।
आशीष-बेजोवियल

8

मैंने मुट्ठी भर वेबकिट वेरिएंट की कोशिश की है, लेकिन मेरे अनुभव में कुछ भी नहीं है जो OpenWebkitSharp की प्रगति है। लव इट लव इट .. एचटीएमएल 5 और सीएसएस 3 स्कोर उतने ही करीब हैं जितने कि वे Google क्रोम को प्राप्त कर सकते हैं। बहुत अच्छा एपीआई और ईवेंटिंग मॉडल। यदि आप API को "लागू नहीं किया गया" पाते हैं, तो वे वेबकिट में लागू नहीं होने के कारण सबसे अधिक संभावना रखते हैं। बाकी सब महान काम करता है।

OpenWebKitSharp WebKit.NET 0.5 परियोजना पर आधारित वेबकिट इंजन के लिए एक .net आवरण है। यह 0.5 संस्करण में अधिक कार्यक्षमता जोड़ता है और यह उस निर्माण की तुलना में अधिक विधियाँ प्रदान करता है। OpenWebKitSharp दोनों काहिरा बिल्ड (0.5) और वेबकिट के नाइटली बिल्ड (रात को डिफ़ॉल्ट रूप से) का समर्थन करता है। संस्करण 1.5 में स्थिर और अधिक रात निर्माण शामिल है और निर्माण के बाद स्वचालित रूप से कॉपी किया जाता है। पहले के संस्करणों में यह कैरो बिल्ड के साथ होता है। OpenWebKitSharp वर्तमान में GTLite नेविगेटर, एक तेज़, स्थिर और लचीले वेब ब्राउज़र को अधिकार देता है।


1
धन्यवाद। यह एक महान खोज की तरह लग रहा है!
सिल्वरड्रेग

उनके फ़ोरम भी बहुत सक्रिय हैं, और मुझे अपने सवालों के बहुत त्वरित जवाब मिले। अब मैं अपने सभी वेबब्रोसर नियंत्रण आवश्यकताओं के लिए इसका उपयोग कर रहा हूं
विन

2
हाँ, यह सब करता है, जिसे आप ExecuteScript कहते हैं। हालाँकि, मैं CefSharp में बदल गया और मैं आपको बता सकता हूं कि मुझे यह OWS से बेहतर लगता है
Vin

1
कोड की एक और घृणित गड़बड़ी जो उपयोग के लिए व्यवहार्य नहीं है जो कभी-कभी।
क्रैंग प्राइम

1
वेबकिट
कैंटवेयर

7

UPDATE 2018 MAY

यदि आप विंडोज 10 पर चलने के लिए एप्लिकेशन को लक्षित कर रहे हैं, तो अब आप विंडोज कम्युनिटी टूलकिट का उपयोग करके एज ब्राउज़र को अपने .net एप्लिकेशन में एम्बेड कर सकते हैं ।

WPF उदाहरण:

1) विंडोज कम्युनिटी टूलकिट Nuget पैकेज स्थापित करें

Install-Package Microsoft.Toolkit.Win32.UI.Controls

2) XAML कोड

<Window
    x:Class="WebViewTest.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:WPF="clr-namespace:Microsoft.Toolkit.Win32.UI.Controls.WPF;assembly=Microsoft.Toolkit.Win32.UI.Controls"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:local="clr-namespace:WebViewTest"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    Title="MainWindow"
    Width="800"
    Height="450"
    mc:Ignorable="d">
    <Grid>
        <WPF:WebView x:Name="wvc" />
    </Grid>
</Window>

3) सीएस कोड:

public partial class MainWindow : Window
{
  public MainWindow()
  {
    InitializeComponent();

    // You can also use the Source property here or in the WPF designer
    wvc.Navigate(new Uri("https://www.microsoft.com"));
  }
}

WinForms उदाहरण:

public partial class Form1 : Form
{
  public Form1()
  {
    InitializeComponent();

    // You can also use the Source property here or in the designer
    webView1.Navigate(new Uri("https://www.microsoft.com"));
  }
}

अधिक जानकारी के लिए कृपया इस लिंक को देखें।


मैंने Nuget पैकेज स्थापित किया था, लेकिन यह काम नहीं कर रहा है। फिर भी टाय।
डेनिज

6

EO.WebBrowser आज़माएं । यह नया है और क्रोम ब्राउज़र के नवीनतम संस्करण पर आधारित है। इसके बारे में सबसे अच्छी बात यह है कि यह एक ही .NET dll के अंदर सब कुछ पैक करता है इसलिए न केवल इसका उपयोग और तैनाती के लिए बहुत आसान है, बल्कि एक ही DLL 32 बिट और 64 बिट दोनों का समर्थन करता है क्योंकि यह एक .NET dll है।


9
भविष्य में कृपया बताएं कि यह व्यावसायिक रूप से लाइसेंस प्राप्त उत्पाद है, और उत्पाद से आपका कोई संबंध है या नहीं, FAQs में ओवर-सेल्फ-प्रमोशन से बचें
एंडी ब्राउन

1
YEARS ---- के लिए एक पागल-हैटर ​​की तरह खोज करने के बाद ---- यह "वाणिज्यिक" नियंत्रण का शाब्दिक है IE के लिए केवल काम करने वाला ड्रॉप-इन प्रतिस्थापन, जिसे मुझे अपने आसपास नहीं देखना था और अपने किसी भी वर्तमान ब्राउज़र को खराब नहीं करना था। समायोजन। - अगर फ़्लैगिंग, मैं किसी भी तरह से आकार या रूप में ईओ से जुड़ा नहीं हूं। I AM ने कहा कि ये सभी अन्य समाधान पूरी तरह से s__t हैं - पूरी तरह से कचरा और हर समय की पूरी बर्बादी।
१५:

@SanuelJackson GeckoFx मेरी कंपनी में पूरी तरह से काम कर रहा है और उसने ब्राउज़र सेटिंग्स के साथ कोई समस्या नहीं पैदा की है
Wayne

@Wayne - आपके लिए यह अच्छा है। इन खुली परियोजनाओं में से कोई भी एक ड्रॉप-इन प्रतिस्थापन नहीं है, जिसे प्रबंधित कोड के रूप में काम करने के लिए महत्वपूर्ण संशोधन की आवश्यकता होती है, विशेष रूप से ड्रॉप-इन winforms नियंत्रण के रूप में। वे या तो कार्यक्षमता की कमी है कि IE नियंत्रण प्रदान करता है और / या पूरी तरह से s__t हैं क्योंकि वे लगातार दुर्घटनाग्रस्त होते हैं या धीमे होते हैं - यहां भी सभी समस्याओं को सूचीबद्ध नहीं कर सकते हैं। शायद एक और दशक में जब इंटरनेट को अब वेब-ब्राउज़र की आवश्यकता नहीं है, शायद तब कुछ व्यवहार्य काम करने की स्थिति में होगा।
क्रांग प्राइम

@ सैनुअलजैकसन हम्म, काश आपने जो कहा वो सच था। दुर्भाग्यवश (गेकोफ़एक्स सहित) किसी भी विकल्प ने मेरे लिए कोई शो-स्टॉपिंग त्रुटियां नहीं कीं। मैं यह भी चाहता हूं कि मैं आवश्यक वस्तुओं के ब्राउज़र के लिए उच्च कीमत से बच सकता था। लेकिन यह एकमात्र ऐसा था जिसने मेरे लिए निर्दोष रूप से काम किया।
मायकेन रोसकिल्डे

5

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

आप इसे यहाँ पा सकते हैं: https://bitbucket.org/geckofx/

अधिकांश सभ्य पुस्तकालयों की तरह, यह ओपन-सोर्स है।


2
सभी फ़ायरफ़ॉक्स आधारित घटक जो काम करते हैं, फ़ायरफ़ॉक्स के उपयोगकर्ताओं के साथ पेंच करते हैं। सौभाग्य से, इनमें से अधिकांश समाधान बिल्कुल भी काम करने में विफल होते हैं, और अगर भाग्यशाली है, तो यह आपके फ़ायरफ़ॉक्स सेटिंग्स को अंदर रखता है --- इतना भाग्यशाली नहीं है, आप अपनी सभी सेटिंग्स खो देते हैं, और अभी भी ड्रॉप-इन के रूप में आईई से बेहतर कुछ भी नहीं है।
१६:१६ बजे क्रैंग प्राइम

1
लिंक मृत है और पुराने बिल्ड से है। bitbucket.org/geckofx का वर्तमान संस्करण है
वेन

@ सानुअल जैक्सन - मैंने गेकोफैक्स का उपयोग वर्षों तक किया और कभी भी फ़ायरफ़ॉक्स के उपयोगकर्ता की स्थापना के साथ किसी भी मुद्दे का अनुभव नहीं किया - जिसमें मेरा अपना भी शामिल है। क्या आप सिर्फ अनुमान लगा रहे हैं?
पांडावुड

3

मोजनेट एक .NET कंट्रोल है, जो पहले कम या ज्यादा छोड़े गए गेकोफएक्स कंट्रोल के आधार पर है, लेकिन पूर्ण विकास के अधीन है और इस तरह से जेकॉएफएक्स की तुलना में अधिक फीचर्स एक छड़ी को हिला सकते हैं। आप इसे Se7en Soft वेबसाइट पर पा सकते हैं ।


1
GeckoFX को सक्रिय रूप से विकसित किया जा रहा है: bitbucket
Wayne

2

EO.BrowserControl त्वरित और आसान है। इसमें क्रोम ब्राउज़र इंजन है और यह .NET के किसी भी संस्करण के साथ काम करता है

https://visualstudiogallery.msdn.microsoft.com/fcee0646-42e7-484f-b22e-f8b2ace55dd7

नोट: यह एक व्यावसायिक रूप से लाइसेंस प्राप्त उत्पाद है और मैं इसे ध्यान में रखते हुए इसका प्रचार नहीं कर रहा हूं। कई अन्य चीजों की कोशिश करने के बाद, मैंने इसे चुनना समाप्त कर दिया।


2

अद्यतन २०१६:

मेरे सुझाव के 3 अतिरिक्त विकल्प हैं:

1. BrowseEmAll.Cef

एक .Net घटक जिसका उपयोग क्रोम इंजन को आपके .Net अनुप्रयोग में एकीकृत करने के लिए किया जा सकता है । CefGlue पर आधारित लेकिन नवीनतम क्रोम संस्करण के अपडेट पर थोड़ा तेज़। इसके अलावा एक व्यावसायिक सहायता विकल्प उपलब्ध है जो कुछ के लिए काम आ सकता है। बेशक घटक ही खुला स्रोत है

2. BrowseEmAll.Gecko

एक और .Net घटक जो आपके .Net अनुप्रयोग में फ़ायरफ़ॉक्स इंजन को एकीकृत करने के लिए इस्तेमाल किया जा सकता है । यह जेकॉफ पर आधारित है लेकिन जेकॉफ के वर्तमान संस्करण के विपरीत यह फ़ायरफ़ॉक्स के सामान्य रिलीज़ बिल्ड के साथ काम करेगा। जेकॉफ का उपयोग करने के लिए आपको स्वयं फ़ायरफ़ॉक्स का निर्माण करना होगा। फिर से व्यावसायिक सहायता उपलब्ध है लेकिन घटक स्वयं पूरी तरह से खुला स्रोत है

3. BrowseEmAll कोर एपीआई

अपने .Net अनुप्रयोग में सभी विभिन्न ब्राउज़रों की आवश्यकता है? कौन-सा BrowseEmAll कोर एपीआई आप क्रोम, फ़ायरफ़ॉक्स, वेबकिट और इंटरनेट एक्सप्लोरर को अपने आवेदन में एकीकृत कर सकते हैं । यह एक वाणिज्यिक उत्पाद है, हालांकि चेतावनी दी जाती है।

(पूर्ण प्रकटीकरण: मैं इस कंपनी के लिए काम करता हूं इसलिए नमक के एक दाने के साथ मैं जो कुछ भी कहता हूं वह ले लो)


1

यदि आप एक अच्छा IE आधारित नियंत्रण की तलाश कर रहे हैं - बाहर की जाँच करें: http://code.google.com/p/csexwb2/

मैंने इसे प्रोडक्शन प्रोडक्ट्स में इस्तेमाल किया है। यह बहुत अच्छा है और इसमें अच्छे डेमो हैं हालांकि ऐसा लगता नहीं है कि इसे अब भी बनाए रखा जा रहा है।


1

Geckofx और Webkit.net दोनों पहली बार में वादा कर रहे थे, लेकिन वे इंटरनेट एक्सप्लोरर में सुधार करते हुए क्रमशः फ़ायरफ़ॉक्स और क्रोम के साथ अद्यतित नहीं रहते थे, इसलिए वेबब्रोसर ने नियंत्रण किया, हालांकि यह IE7 के डिफ़ॉल्ट रूप से व्यवहार करता है, भले ही आप IE संस्करण की परवाह किए बिना। है, लेकिन यह रजिस्ट्री में जाकर तय किया जा सकता है और इसे IE9 में बदलकर HTML5 की अनुमति दे सकता है।




0

मैंने उन सभी ब्राउज़रों की कोशिश की है जो वहां हैं। दुर्भाग्य से केवल एक ही है कि वास्तव में मेरे लिए सभी परिस्थितियों में काम किया था EO.Browser। काश, मैं एक नि: शुल्क समाधान चुन सकता था, लेकिन मैंने ई.ओ. ब्रॉज़र के साथ समाप्त किया। यह बहुत स्वादिष्ट है, लेकिन अच्छी तरह से बनाए रखा है।


0

अद्यतन २०१६:

मेरे लिए, IE के लिए एकमात्र विश्वसनीय, अनुरक्षित ब्राउज़र विकल्प EO.WebBrowser है। मैंने दूसरों को आज़माने में दिन और सप्ताह लगाए। उन सभी में कुछ मुद्दे थे जिन्होंने कुछ समय के लिए मेरे लिए शो रोक दिया।


1
अच्छा ... मैं एक सप्ताह के लिए आसपास pratted? एमएस वेबब्रोज़र काम करने की कोशिश कर रहा है - सभी को कोई फायदा नहीं हुआ। दूसरों की कोई कोशिश नहीं की =: - {EO.WebBrowser को छोड़कर जो पहली बार मेरे लिए काम किया। तो इसके 20 मिनट ईओ के साथ और सफलता बनाम एमएस के साथ 5 दिन और पूर्ण और पूरी तरह से असफल विफलता। मैं अब केवल 'सफलता' खरीदने के लिए $ 750 पा सकता हूँ !!!
रिचर्ड हैमंड

0

एक व्यावसायिक उत्पाद जैसे कि WebKitX पर एक नज़र रखने के लायक हो सकता है : https://www.webkitx.com

यहां छवि विवरण दर्ज करें

यह क्रोमियम एंबेडेड फ्रेमवर्क का उपयोग करता है और विंडोज एक्सपी, 7, 8, 10. पर एचटीएमएल 5, वेबजीएल, पीडीएफ और फ्लैश प्रदान करता है। यह 32-बिट के साथ-साथ नियंत्रण के 64-बिट फ्लेवर भी प्रदान करता है।

यह IE वेबब्रोसर नियंत्रण के समान COM ऑब्जेक्ट का उपयोग करके DOM एक्सेस प्रदान करता है:

यहां छवि विवरण दर्ज करें

आप जावास्क्रिप्ट को फ़ंक्शन नाम पासिंग स्केलर तर्क (eval का उपयोग नहीं कर सकते हैं) से कॉल कर सकते हैं और इसमें Angular के लिए जावास्क्रिप्ट कॉलबैक भी हैं :

यहां छवि विवरण दर्ज करें

आप अपनी स्वयं की अंतर-संचालित COM वस्तुओं को जावास्क्रिप्ट में जोड़ सकते हैं:

यहां छवि विवरण दर्ज करें

यह HTML5 गेमिंग के लिए WebGL / WebAudio का समर्थन करता है, जिसे आप Citrix वातावरण के लिए अक्षम कर सकते हैं:

यहां छवि विवरण दर्ज करें


मैं इसका उत्पादन में उपयोग करता हूं, और मुझे इस पर पूरा भरोसा है। मैंने कई अन्य लोगों की कोशिश की है, और मैं इस ब्राउज़र के साथ फंस गया हूं। देव वास्तव में अच्छे और "व्यक्तिगत" हैं। मुझे कई अन्य लोगों की तरह अकेला महसूस नहीं हुआ। वास्तव में अच्छा और स्थिर उत्पाद।
tmighty

अतः, अस्वीकरण की आवश्यकता है तो यह अच्छा हो गया होता इलियास का कहना है करने के लिए है कि वह mobilefx के सीटीओ, जो WebkitX के रचनाकारों हैं
hko
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.