c# web browser document text html kodu sorunu?

0

C# form uygulamasında web browser üzerinde video açmak istiyorum. 

WebBrowser web = new WebBrowser();
                                            web.Location = new Point(200,200);
                                            web.Size = new Size(200,200);
                                            web.DocumentText = "<iframe src="http://vk.com/video_ext.php?oid=231360946&amp;id=167591129&amp;hash=4b1b668f4b87f681&amp;hd=2" width="643" height="385" frameborder="0" cd_frame_id_="d4cea1159ac698e2e3bce2cce767d0a4"></iframe>";
                                            this.Controls.Add(web);

bu kodu yazdığımda ise flash hatası almaktayım. Sorunu nasıl çözebilirim?

elessar elessar (65)
10 yıl önce sordu

    Toplam 2 Cevap


    1

    Aldığınız hata tam olarak nedir bilmiyorum fakat sizin kodlarınızı biraz düzenledim ve youtube üzerinden bir video ekledim., test ettim çalışıyor, şu şekilde deneyin:

     void video()
            {
                string _embeddedpage = @"
                <html>
                    <body>
                        <iframe  type='text/html' width='640' height='385'
                            src='http://www.youtube.com/embed/SfjfaFiy7LE' frameborder='0'>
                        </iframe>
                    </body>
                <html>";
                WebBrowser web = new WebBrowser();
                web.Location = new Point(200, 200);
                web.Size = new Size(200, 200);
                web.DocumentText = _embeddedpage;
                this.Controls.Add(web);
            }

    Düzenleme:

    Windows form uygulamalarında Webbrowser kontrolü normal Internet Explorer'dan çok farklı davranıyor. Örneğin Javascript ve Css'leri yorumlarken hatalar ile karşılaşabilirsiniz. Bunun önüne geçmek için bazı özellikleri açmalısınız.

    VK.com videolari javascript gerektirdiğinden muhtemelen yukarıdaki kod vk.com videolarında sorun çıkartacaktır.

    WebBrowser kontrolü ile daha öncede soru sormuşsunuz. Sıkıntı yaşamamanız için tarayıcı özelliklerini açacak ve bu tür sorunla ile karşılaşmamamını sağlayacak bir kod paylaşıyorum:

    using Microsoft.Win32;
    using System;
    using System.Diagnostics;
    using System.Drawing;
    using System.Windows.Forms;
    
    namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
                OzellikKontrolleriniAktifEt();
            }
    
            private void btnVideo_Click(object sender, EventArgs e)
            {
                WebBrowser web = new WebBrowser();
                web.Location = new Point(0, 0);
                web.Size = new Size(643, 385);
                web.DocumentText = "<iframe src=\"http://vk.com/video_ext.php?oid=231360946&amp;id=167591129&amp;hash=4b1b668f4b87f681&amp;hd=2\" width=\"643\" height=\"385\" frameborder=\"0\" cd_frame_id_=\"d4cea1159ac698e2e3bce2cce767d0a4\"></iframe>";
                this.Controls.Add(web);
            }
    
    
    
            private void OzellikKontrolleriniAktifEt()
            {
                // Detaylı bilgi: http://msdn.microsoft.com/en-us/library/ee330720(v=vs.85).aspx
    
                var fileName = System.IO.Path.GetFileName(Process.GetCurrentProcess().MainModule.FileName);
    
                if (String.Compare(fileName, "devenv.exe", true) == 0 || String.Compare(fileName, "XDesProc.exe", true) == 0)
                    return;
    
                TarayiciOzellikAnahtarlariniAyarla("FEATURE_DOMSTORAGE ", fileName, 1);
                TarayiciOzellikAnahtarlariniAyarla("FEATURE_GPU_RENDERING ", fileName, 1);
                TarayiciOzellikAnahtarlariniAyarla("FEATURE_IVIEWOBJECTDRAW_DMLT9_WITH_GDI  ", fileName, 0);
                TarayiciOzellikAnahtarlariniAyarla("FEATURE_NINPUT_LEGACYMODE", fileName, 0);
                TarayiciOzellikAnahtarlariniAyarla("FEATURE_DISABLE_LEGACY_COMPRESSION", fileName, 1);
                TarayiciOzellikAnahtarlariniAyarla("FEATURE_LOCALMACHINE_LOCKDOWN", fileName, 0);
                TarayiciOzellikAnahtarlariniAyarla("FEATURE_BLOCK_LMZ_OBJECT", fileName, 0);
                TarayiciOzellikAnahtarlariniAyarla("FEATURE_BLOCK_LMZ_SCRIPT", fileName, 0);
                TarayiciOzellikAnahtarlariniAyarla("FEATURE_TABBED_BROWSING", fileName, 1);
                TarayiciOzellikAnahtarlariniAyarla("FEATURE_VALIDATE_NAVIGATE_URL", fileName, 1);
                TarayiciOzellikAnahtarlariniAyarla("FEATURE_WEBOC_DOCUMENT_ZOOM", fileName, 1);
                TarayiciOzellikAnahtarlariniAyarla("FEATURE_WEBOC_POPUPMANAGEMENT", fileName, 0);
                TarayiciOzellikAnahtarlariniAyarla("FEATURE_WEBOC_MOVESIZECHILD", fileName, 1);
                TarayiciOzellikAnahtarlariniAyarla("FEATURE_ADDON_MANAGEMENT", fileName, 0);
                TarayiciOzellikAnahtarlariniAyarla("FEATURE_WEBSOCKET", fileName, 1);
                TarayiciOzellikAnahtarlariniAyarla("FEATURE_WINDOW_RESTRICTIONS ", fileName, 0);
                TarayiciOzellikAnahtarlariniAyarla("FEATURE_XMLHTTP", fileName, 1);
                TarayiciOzellikAnahtarlariniAyarla("FEATURE_BROWSER_EMULATION", fileName, TarayiciEmulasyonModunuGetir());
                TarayiciOzellikAnahtarlariniAyarla("FEATURE_AJAX_CONNECTIONEVENTS", fileName, 1);
                TarayiciOzellikAnahtarlariniAyarla("FEATURE_ENABLE_CLIPCHILDREN_OPTIMIZATION", fileName, 1);
                TarayiciOzellikAnahtarlariniAyarla("FEATURE_MANAGE_SCRIPT_CIRCULAR_REFS", fileName, 1);
                TarayiciOzellikAnahtarlariniAyarla("FEATURE_DISABLE_NAVIGATION_SOUNDS", fileName, 1);
                TarayiciOzellikAnahtarlariniAyarla("FEATURE_SCRIPTURL_MITIGATION", fileName, 1);
                TarayiciOzellikAnahtarlariniAyarla("FEATURE_SPELLCHECKING", fileName, 0);
                TarayiciOzellikAnahtarlariniAyarla("FEATURE_STATUS_BAR_THROTTLING", fileName, 1);
            }
    
            private UInt32 TarayiciEmulasyonModunuGetir()
            {
                int browserVersion = 7;
                using (var ieKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Internet Explorer",
                    RegistryKeyPermissionCheck.ReadSubTree,
                    System.Security.AccessControl.RegistryRights.QueryValues))
                {
                    var version = ieKey.GetValue("svcVersion");
                    if (null == version)
                    {
                        version = ieKey.GetValue("Version");
                        if (null == version)
                            throw new ApplicationException("Microsoft Internet Explorer gereklidir!");
                    }
                    int.TryParse(version.ToString().Split('.')[0], out browserVersion);
                }
    
                UInt32 mode = 11001; // Internet Explorer 11 
                switch (browserVersion)
                {
                    case 7:
                        mode = 7000; //  Internet Explorer 7 Standart mod
                        break;
                    case 8:
                        mode = 8000; // Internet Explorer 8
                        break;
                    case 9:
                        mode = 9000; // Internet Explorer 9.
                        break;
                    case 10:
                        mode = 10000; // Internet Explorer 10
                        break;
                    default:
                        // use IE10 mode by default
                        break;
                }
    
                return mode;
            }
            private void TarayiciOzellikAnahtarlariniAyarla(string feature, string appName, uint value)
            {
                using (var key = Registry.CurrentUser.CreateSubKey(
                    String.Concat(@"Software\Microsoft\Internet Explorer\Main\FeatureControl\", feature),
                    RegistryKeyPermissionCheck.ReadWriteSubTree))
                {
                    key.SetValue(appName, (UInt32)value, RegistryValueKind.DWord);
                }
            }
        }
    }
    

    indirme linki : Örnek Windows Forms C# vk.com video WebBrowser projesini buradan indirebilirsiniz

    alattin alattin (16984)
    10 yıl önce cevaplandı

      0

      Ayrıntılı cevabınız için teşekkür ederim. vk video linkini direk navigate ettiğimde önceden çalışmıyordu. yazmış oldugunuz kodları ilave ettikten sonra çalıştı. Fakat

      WebBrowser web = new WebBrowser();
                  web.Location = new Point(200, 200);
                  web.Size = new Size(200, 200);
                  web.DocumentText = _embeddedpage;
                  this.Controls.Add(web);

      Bu şekilde yazınca Flash player hatası veriyor.

      Alttaki Resim ise Url NAvigate olayı

      elessar elessar (65)
      10 yıl önce cevaplandı

      • Bendeki örnekte bir flash hatası vermedi (yukarıdaki detaylı kodu ekledikten sonra). Uygulamayi zip olarak Google Drive'a yükledim. Oradan indirip kontrol edebilirsiniz. Sorunsuz çalışıyor. alattin 10 yıl önce
      • İndirme linki cevabımın altında. alattin 10 yıl önce
      • çok teşekkür ederim. kolay gelsin elessar 10 yıl önce
      üyelik gerektirir

      Cevap yazabilmek için üye girişi yapmalısınız.

      Eğer uzmanim.net üyesiyseniz giriş yapabilirsiniz: üye girişi yap
      uzmanim.net'e üye olmak çok kolaydır: hemen kayıt ol