تغییر نسخه های IE در سی شارپ #C

کد با پلتفرم بوی - کد سی شارپ
کد با پلتفرم بوی – کد سی شارپ

نسخه پیش فرض کنترل مرورگر وب در برنامه 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);
   }

کدهای بیشتر - سی شارپ

آیا این مطلب برای شما مفید بود؟

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *