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&id=167591129&hash=4b1b668f4b87f681&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?
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&id=167591129&hash=4b1b668f4b87f681&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
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ı
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