عدم نمایش repatcha در سی شارپ #C

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

شاید به تازگی مشغول طراحی یک برنامه برای نمایش صفحات وب هستید . ویژوال استودیو به طور پیش فرض از مرورگر اینترنت اکسپلورر قدیمی استفاده می کند که ممکن است صفحات جدید وب را به درستی نمایش ندهد .

وقتی بخواهید از مرورگر وب در پروژه خود استفاده کنید اولین و بهترین راه حل استفاده از IE است . البته مرورگر های دیگری هم قابل استفاده هستند اما فعلا اینترنت اکسپلورر مدنظرماست .

وقتی به سایت گوگل یا سایت های دیگری می روید reCAPTCHA نشان داده نمی شود. پیام خطایی دریافت می کنید که مرورگر وب شما پشتیبانی نمی شود و باید از نسخه ارتقا داده شده استفاده کنید .

اگر شما IE 11 روی سیستمتان نصب هست برای نمایش صحیح صفحات وب در پروژه تان کافی نیست چرا که حتی اگر مرورگر ادج مایکروسافت هم نصب باشد ویژوال استودیو نسخه پیش فرض iE را تغییر نمی دهد .

بهترین راه حل این است که نسخه WebBrowser را تغییر دهید :

تنها کاری که باید انجام دهید تنظیم نسخه مرورگر در رجیستری سیستمتان است :

var appName = System.IO.Path.GetFileName(System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName);
                Microsoft.Win32.Registry.SetValue(@"HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION",
                appName, 11000, Microsoft.Win32.RegistryValueKind.DWord);
    //where: 11000 is currently the last version of iExplorer

در ویندوز 10 ما از قطعه کد زیر استفاده کردیم و همانطور که مشاهده شد را دیدیم . توصیه ما ابتدا استفاده از قطعه کد بالا و سپس قطعه کد زیر است :

پلتفرم بوی اجرا شدن خروجی صحیح قطعه کد زیر را تایید می کند

قطعه کدی که در زیر مشاهده می کنید توسط برنامه کامپایلر به جهت تست آزمایش شده و خروجی صحیح مدنظر را بدست آورد.

private void set_registery()
     {
         try
         {
             string executablePath = Environment.GetCommandLineArgs()[0];
             string executableName = System.IO.Path.GetFileName(executablePath);

             RegistryKey registrybrowser = Registry.CurrentUser.OpenSubKey
                (@"SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION", true);

             if (registrybrowser == null)
             {
                 RegistryKey registryFolder = Registry.CurrentUser.OpenSubKey
                     (@"SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl", true);
                 registrybrowser = registryFolder.CreateSubKey("FEATURE_BROWSER_EMULATION");
             }

             registrybrowser.SetValue("myAppName", 10000, RegistryValueKind.DWord); //Even with QWord and String
             registrybrowser.SetValue("myAppName", 10000); //even with 0x02710
             registrybrowser.SetValue(executableName, 0x02710, RegistryValueKind.DWord);
             registrybrowser.Close();
         }
         catch
         {
             MessageBox.Show("تنظیمات ریجستری با موفقیت انجام نشد", "اینجا یک مشکلی هست", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign);
         }
     }

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

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

بله
نه اصلا
از اینکه بازخورد خود را در اختیار ما گذاشته اید متشکریم. تا بعد 🙂

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

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