نقل قول: تغییر User agent
سلام، این برای تغییر user agent ـه WebClient هست و ربطی به WebBrowser نداره.
WebBrowser بصورت پیشفرض از اطلاعات اینترنت اکسپلوره استفاده میکنه.
یه روشی که داخل سایت های مختلف بهش اشاره میشه این روش هست که هنگام Navigate کردن، User agent رو تنظیم کنیم:
webBrowser1.Navigate("http://ame.com", null, null, "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36 OPR/54.0.2952.71");
که برای من یکی، همیشه خدا کار نمیکرد:| شما یه امتحانیش کن.
روش دو اینه که از UrlMkSetSessionOption استفاده کنیم.
فضای نامی مورد نیاز:
using System.Runtime.InteropServices;
[DllImport("urlmon.dll", CharSet = CharSet.Ansi)]
private static extern int UrlMkSetSessionOption(
int dwOption, string pBuffer, int dwBufferLength, int dwReserved);
const int URLMON_OPTION_USERAGENT = 0x10000001;
public void ChangeUserAgent()
{
string userAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36 OPR/54.0.2952.71";
UrlMkSetSessionOption(URLMON_OPTION_USERAGENT, userAgent, userAgent.Length, 0);
}
کافیه تابع ChangeUserAgent رو فراخوانی کنی تا user agent عوض شه.
بعضی ها میگن که روش دوم داخل wpf کار نمیکنه و روش اول کار میکنه، پس بهتره هر دو روش رو امتحان کنی و ببینی کدوم برات کار میکنه و از همون استفاده کنی.
موفق باشید.
نقل قول: تغییر User agent
ممنون
روش دوم فکر کنم کار کرد.
یه سوال دیگه
این webBrowser سی شارپ چرا بعضی از سایت ها رو که باز میکنه کلی ارور میده و صفحه را استاندارد لود نمیکنه؟
به خاطر اینه که از اینترنت اکسپلوره استفاده میکنه؟
نقل قول: تغییر User agent
خصوصیت ScriptErrorsSuppressed در WebBrowser رو برابر True قرار دهید
نقل قول: تغییر User agent
نقل قول:
نوشته شده توسط
danialafshari
خصوصیت ScriptErrorsSuppressed در WebBrowser رو برابر True قرار دهید
میدونم
ولی دوست صفحه رو لود نمیکنه
نقل قول: تغییر User agent
نقل قول:
نوشته شده توسط
ramtinak
سلام، این برای تغییر user agent ـه WebClient هست و ربطی به WebBrowser نداره.
WebBrowser بصورت پیشفرض از اطلاعات اینترنت اکسپلوره استفاده میکنه.
یه روشی که داخل سایت های مختلف بهش اشاره میشه این روش هست که هنگام Navigate کردن، User agent رو تنظیم کنیم:
webBrowser1.Navigate("http://ame.com", null, null, "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36 OPR/54.0.2952.71");
که برای من یکی، همیشه خدا کار نمیکرد:| شما یه امتحانیش کن.
روش دو اینه که از UrlMkSetSessionOption استفاده کنیم.
فضای نامی مورد نیاز:
using System.Runtime.InteropServices;
[DllImport("urlmon.dll", CharSet = CharSet.Ansi)]
private static extern int UrlMkSetSessionOption(
int dwOption, string pBuffer, int dwBufferLength, int dwReserved);
const int URLMON_OPTION_USERAGENT = 0x10000001;
public void ChangeUserAgent()
{
string userAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36 OPR/54.0.2952.71";
UrlMkSetSessionOption(URLMON_OPTION_USERAGENT, userAgent, userAgent.Length, 0);
}
کافیه تابع ChangeUserAgent رو فراخوانی کنی تا user agent عوض شه.
بعضی ها میگن که روش دوم داخل wpf کار نمیکنه و روش اول کار میکنه، پس بهتره هر دو روش رو امتحان کنی و ببینی کدوم برات کار میکنه و از همون استفاده کنی.
موفق باشید.
سلام مجدد
چجوری میشه با استفاده از روش دوم، یورزایجنت های متفاوت به webbrowser ها در فرم داد؟
مثلا فرض کنید 6 تا webbrowser در یک فرم داریم، میخوایم همزمان به هر کدومشون یک یوزرایجنت متفاوت بدیم.