نسخه پیش فرض کنترل مرورگر وب در برنامه C # Windows Forms 7 همان نسخه 7 یا بعضا 8 اینترنت اکسپلورر است. مقالاتی در اینترنت وجود دارند از جمله Browser Emulation که روش تغییر نسخه فعلی مرورگر در سی شارپ ویژوال استودیو را آموزش داده اند اما روش کاملی نیست چرا که فقط می توانید به نسخه 9 مرورگر ارتقا پیدا کنید .
اما چگونه می توان از جدیدترین نسخه اینترنت اکسپلورر نصب شده در کنترل مرورگر وب ویژوال استودیو در سی شارپ استفاده کرد؟
در هنگام بارگذاری فرم خود از قطعه کد زیر استفاده کنید :
private void Form1_Load(object sender, EventArgs e) { var appName = Process.GetCurrentProcess().ProcessName + ".exe"; SetIE8KeyforWebBrowserControl(appName); } private void SetIE8KeyforWebBrowserControl(string appName) { RegistryKey Regkey = null; try { // For 64 bit machine if (Environment.Is64BitOperatingSystem) Regkey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(@"SOFTWARE\\Wow6432Node\\Microsoft\\Internet Explorer\\Main\\FeatureControl\\FEATURE_BROWSER_EMULATION", true); else //For 32 bit machine Regkey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(@"SOFTWARE\\Microsoft\\Internet Explorer\\Main\\FeatureControl\\FEATURE_BROWSER_EMULATION", true); // If the path is not correct or // if the user haven't priviledges to access the registry if (Regkey == null) { MessageBox.Show("Application Settings Failed - Address Not found"); return; } string FindAppkey = Convert.ToString(Regkey.GetValue(appName)); // Check if key is already present if (FindAppkey == "8000") { MessageBox.Show("Required Application Settings Present"); Regkey.Close(); return; } // If a key is not present add the key, Key value 8000 (decimal) if (string.IsNullOrEmpty(FindAppkey)) Regkey.SetValue(appName, unchecked((int)0x1F40), RegistryValueKind.DWord); // Check for the key after adding FindAppkey = Convert.ToString(Regkey.GetValue(appName)); if (FindAppkey == "8000") MessageBox.Show("Application Settings Applied Successfully"); else MessageBox.Show("Application Settings Failed, Ref: " + FindAppkey); } catch (Exception ex) { MessageBox.Show("Application Settings Failed"); MessageBox.Show(ex.Message); } finally { // Close the Registry if (Regkey != null) Regkey.Close(); } }
ما یک روش ساده تر نیز سراغ داریم که توسط این روش هم می توانید نسخه مرورگر وب را تغییر دهید . از قطعه کد زیر همانند قطعه کد بالا استفاده کنید .
قطعه کدی که در زیر مشاهده می کنید توسط برنامه کامپایلر به جهت تست آزمایش شده و خروجی صحیح مدنظر را بدست آورد.
private static void SetIE() { int BrowserVer, RegVal; // get the installed IE version using (WebBrowser Wb = new WebBrowser()) BrowserVer = Wb.Version.Major; // set the appropriate IE version if (BrowserVer >= 11) RegVal = 11001; else if (BrowserVer == 10) RegVal = 10001; else if (BrowserVer == 9) RegVal = 9999; else if (BrowserVer == 8) RegVal = 8888; else RegVal = 7000; // set the actual key using (RegistryKey Key = Registry.CurrentUser.CreateSubKey(@"SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION", RegistryKeyPermissionCheck.ReadWriteSubTree)) if (Key.GetValue(System.Diagnostics.Process.GetCurrentProcess().ProcessName + ".exe") == null) Key.SetValue(System.Diagnostics.Process.GetCurrentProcess().ProcessName + ".exe", RegVal, RegistryValueKind.DWord); }
کدهای بیشتر - سی شارپ
حذف ردیف یا سطر از DataTable در سی شارپ #C
1 Comments