PDA

View Full Version : webbrowser در c# باز نشدن یک صفحه اینترنتی



0935880
پنج شنبه 08 بهمن 1394, 17:20 عصر
سلام دوستان
من یه مشکلی دارم وقتی یک ادرس اینترنتی را داخل webbrowser فراخانی میکنم ادرس باز نمیشه و لی داخل مرور گر باز میشه
اروری هم که میده میگه مرور گر شما قدیمیه باید چیکار کنم ؟؟؟
تصویر ارور نیز پیوست گردید138707

cmsdqq2
پنج شنبه 08 بهمن 1394, 19:00 عصر
webbrowser بر پایه اینترنت اکسپلورر هست... امکان داره سایت با این نسخه از IE مشکل داشته باشه.

0935880
پنج شنبه 08 بهمن 1394, 23:10 عصر
نه متاسفانه اینکه میگفتن بر پایه Internet Explorer هم هست و مشکل اونه را تست گرفتم و با اون باز شد متاسفانه در webbrowser فقط اینطوری میشه
:ناراحت::ناراحت:
از جا وا اسکریپتش هم نیست

ژیار رحیمی
جمعه 09 بهمن 1394, 02:20 صبح
http://barnamenevis.org/showthread.php?515658-%D8%AE%D8%B7%D8%A7%DB%8C-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA-script-error-%D9%88-%D9%84%D9%88%D8%AF-%D9%86%D8%B4%D8%AF%D9%86-%D8%B3%D8%A7%DB%8C%D8%AA&p=2294466&viewfull=1#post2294466

cmsdqq2
جمعه 09 بهمن 1394, 23:05 عصر
نه متاسفانه اینکه میگفتن بر پایه Internet Explorer هم هست و مشکل اونه را تست گرفتم و با اون باز شد متاسفانه در webbrowser فقط اینطوری میشه
:ناراحت::ناراحت:
از جا وا اسکریپتش هم نیست

نه ببینید، بنده منظورم این هست که نسخه webbrowser موجود پایین هست. یعنی نسخه IE پایین هست.

cmsdqq2
سه شنبه 26 تیر 1397, 00:25 صبح
راهکارش هم این هست که شما باید از طریق تنظیمات رجیستری یک سری از مقادیر کلیدها رو تغییر کنید. نمونه کدش فکر میکنم در سایت codeproject باشه. گوگل کنید حتماً به کدش دست پیدا میکنید.

sds1920
یک شنبه 31 تیر 1397, 08:23 صبح
میتونید این متد رو قبل از باز کردن صفحه اجرا کنید. این کد ورژن IE مورد استفاده WebBrowser رو برای برنامه شما تغییر میده.




private void SetIE11KeyforWebBrowserControl()
{
var appName = Process.GetCurrentProcess().ProcessName + ".exe";
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_EM ULATION", true);
else //For 32 bit machine
Regkey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(@"SOFTWARE\\Microsoft\\Internet Explorer\\Main\\FeatureControl\\FEATURE_BROWSER_EM ULATION", true);


// If the path is not correct or
// if the user haven't priviledges to access the registry
if (Regkey == null)
{
if (Environment.Is64BitOperatingSystem)
Regkey = Microsoft.Win32.Registry.LocalMachine.CreateSubKey (@"SOFTWARE\\Wow6432Node\\Microsoft\\Internet Explorer\\MAIN\\FeatureControl\\FEATURE_BROWSER_EM ULATION");
else //For 32 bit machine
Regkey = Microsoft.Win32.Registry.LocalMachine.CreateSubKey (@"SOFTWARE\\Microsoft\\Internet Explorer\\Main\\FeatureControl\\FEATURE_BROWSER_EM ULATION");
}


string FindAppkey = Convert.ToString(Regkey.GetValue(appName));


// Check if key is already present
if (FindAppkey == "11000")
{
Regkey.Close();
//MessageBox.Show("Application set IE Key value");
return;
}
else
{
Regkey.SetValue(appName, unchecked((int)0x2AF8), RegistryValueKind.DWord);
}


// Check for the key after adding
FindAppkey = Convert.ToString(Regkey.GetValue(appName));


if (FindAppkey != "11000")
throw new Exception("Can not set IE key for web browser");
else
{
Regkey.Close();
//MessageBox.Show("Application set IE Key value");
}
}
catch (Exception ex)
{
MessageBox.Show("Application Settings Failed\n" + ex.Message);
}
finally
{
// Close the Registry
if (Regkey != null)
Regkey.Close();
}
}


البته لازم به ذکر هست که برنامه در این حالت نیاز داره در حالت Administrators اجرا بشه چون میخواد اطلاعات Registry ویندوز رو تغییر بده. از طرفی این کد نیازی نیست هر دفعه اجرا بشه. یکبار روی هر سیستم کفایت میکنه