日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C# webbrowser 代理

發布時間:2023/11/30 C# 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C# webbrowser 代理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

百度,google加自己理解后,將所得方法總結一下:

????方法1:修改注冊表Software//Microsoft//Windows//CurrentVersion//Internet SettingsProxyEnable和ProxyServer。這種方法適用于局域網用戶,撥號用戶無效。

????

?1?public?partial?class?Form1?:?Form
?2????{???????
?3
?4????????//用于刷新注冊表
?5????????[DllImport(@"wininet",
?6????????SetLastError?=?true,
?7????????CharSet?=?CharSet.Auto,
?8????????EntryPoint?=?"InternetSetOption",
?9????????CallingConvention?=?CallingConvention.StdCall)]
10
11
12????????public?static?extern?bool?InternetSetOption
13????????(
14????????int?hInternet,
15????????int?dmOption,
16????????IntPtr?lpBuffer,
17????????int?dwBufferLength
18????????);
19
20?????????private?void?btnStart_Click(object?sender,?EventArgs?e)
21????????{
22????????????RegistryKey?pregkey;
23????????????????pregkey?=?Registry.CurrentUser.OpenSubKey("Software//Microsoft//Windows//CurrentVersion//Internet?Settings",?true);
24????????????????if?(pregkey?==?null)
25????????????????{
26????????????????????Console.WriteLine("鍵值不存在");
27????????????????}

28????????????????else
29????????????????{
30????????????????????pregkey.SetValue("ProxyEnable",?1);
31????????????????????pregkey.SetValue("ProxyServer",?"代理地址");
32????????????????????//激活代理設置
33????????????????????InternetSetOption(0,?39,?IntPtr.Zero,?0);
34????????????????????InternetSetOption(0,?37,?IntPtr.Zero,?0);
35????????????????????webBrowser1.Navigate(txtweb.Text,?false);
36????????????????????//?System.Threading.Thread.Sleep(10000);
37????????????????}

38????????}

39}

方法2: 修改注冊表 Software//Microsoft//Windows//CurrentVersion//Internet Settings//Connections下以你撥號連接名為鍵的值,該鍵為二進制。這種方法適用于撥號用戶。

???? public?partial?class?FrmMain?:?Form
????
{

[DllImport(
@"wininet",
????????SetLastError?
=?true,
????????CharSet?
=?CharSet.Auto,
????????EntryPoint?
=?"InternetSetOption",
????????CallingConvention?
=?CallingConvention.StdCall)]


????????
public?static?extern?bool?InternetSetOption
????????(
????????
int?hInternet,
????????
int?dmOption,
????????IntPtr?lpBuffer,
????????
int?dwBufferLength
????????);

//將值轉換為注冊表中的二進制值
public?byte?ChangeTobyte(char?i)
????????
{
????????????
byte?key?=?0;
????????????
switch?(i)
????????????
{
????????????????
case?'0':?key?=?48;?break;
????????????????
case?'1':?key?=?49;?break;
????????????????
case?'2':?key?=?50;?break;
????????????????
case?'3':?key?=?51;?break;
????????????????
case?'4':?key?=?52;?break;
????????????????
case?'5':?key?=?53;?break;
????????????????
case?'6':?key?=?54;?break;
????????????????
case?'7':?key?=?55;?break;
????????????????
case?'8':?key?=?56;?break;
????????????????
case?'9':?key?=?57;?break;
????????????????
case?'.':?key?=?46;?break;
????????????????
case?':':?key?=?58;?break;
????????????????
????????????}

????????????
return?key;
????????}


private?void?btnStart_Click(object?sender,?EventArgs?e)
????????
{
?????????????
int?i?=?("代理地址").Length;
????????????????
byte[]?key?=?new?byte[50];
????????????????
char[]?source?=?("代理地址").ToCharArray();
????????????????key[
0]?=?60;
????????????????key[
4]?=?3;
????????????????key[
8]?=?3;
????????????????key[
12]?=?(byte)i;
????????????????
for?(int?ii?=?0;?ii?<?source.Length;?ii++)
????????????????
{
????????????????????key[
16?+?ii]?=?ChangeTobyte(source[ii]);
????????????????}

????????????????
string?sDirectX?=?"";
????????????????
for?(int?k?=?0;?k?<?key.Length;?k++)
????????????????
{
????????????????????
if?(key[k]?!=?0)
????????????????????
{
????????????????????????sDirectX?
+=?key[k]?+?"?";
????????????????????}

????????????????}

????????????????
//MessageBox.Show(sDirectX);
????????????????RegistryKey?pregkey;
????????????????pregkey?
=?Registry.CurrentUser.OpenSubKey("Software//Microsoft//Windows//CurrentVersion//Internet?Settings//Connections",?true);
????????????????
if?(pregkey?==?null)
????????????????
{
????????????????????Console.WriteLine(
"鍵值不存在");
????????????????}

????????????????
else
????????????????
{
????????????????????pregkey.SetValue(
"撥號名字對應鍵值",?key,?RegistryValueKind.Binary);
????????????????????
//激活代理設置
????????????????????InternetSetOption(0,?39,?IntPtr.Zero,?0);
????????????????????InternetSetOption(
0,?37,?IntPtr.Zero,?0);
????????????????????webBrowser1.Navigate(txtweb.Text,?
false);
????????????????????webBrowser1.Refresh();
????????????????????
????????????????}


????????}

}

方法3: 使用c#自帶的 webproxy類,使用這種方法可以獲得目標網站的響應,但我不會把這種響應用IE反饋出來,有高手幫個忙么?
網上的代碼說是MSDN的:
????HttpWebRequest?myWebRequest=(HttpWebRequest)WebRequest.Create(" http://www.microsoft.com"/);?
????WebProxy?myProxy=new?WebProxy();?
????//?Obtain?the?'Proxy'?of?the??Default?browser.???
???? myProxy=(WebProxy)myWebRequest.Proxy;?這行我編譯不通過
????//?Print?the?Proxy?Url?to?the?console.?
????Console.WriteLine("/nThe?actual?default?Proxy?settings?are?{0}",myProxy.Address);?
????try?
????{?
????Console.WriteLine("/nPlease?enter?the?new?Proxy?Address?that?is?to?be?set:");?
????Console.WriteLine("(Example: http://myproxy.example.com:port/)");?
????string?proxyAddress;?
????proxyAddress?=Console.ReadLine();?
????if(proxyAddress.Length>0)?

????{?
????Console.WriteLine("/nPlease?enter?the?Credentials?");?
????Console.WriteLine("Username:");?
????string?username;?
????username?=Console.ReadLine();?
????Console.WriteLine("/nPassword:");?
????string?password;?
????password?=Console.ReadLine();?
????//?Create?a?new?Uri?object.?
????Uri?newUri=new?Uri(proxyAddress);?
????//?Associate?the?newUri?object?to?'myProxy'?object?so?that?new?myProxy?settings?can?be?set.?
????myProxy.Address=newUri;?
????//?Create?a?NetworkCredential?object?and?associate?it?with?the?Proxy?property?of?request?object.?
????myProxy.Credentials=new?NetworkCredential(username,password);?
????myWebRequest.Proxy=myProxy;?
????}?
????Console.WriteLine("/nThe?Address?of?the??new?Proxy?settings?are?{0}",myProxy.Address);?
????HttpWebResponse?myWebResponse=(HttpWebResponse)myWebRequest.GetResponse();

我改了下:
????

????????????HttpWebRequest myWebRequest = (HttpWebRequest)WebRequest.Create("http://www.123cha.com");
??????????? WebProxy myProxy = new WebProxy("代理地址", true);
??????????? try
??????????? {
???????????????
??????????????? Console.WriteLine("/nThe Address of the? new Proxy settings are {0}", myProxy.Address);
??????????????? HttpWebResponse myWebResponse = (HttpWebResponse)myWebRequest.GetResponse();
??????????????
??????????????? webBrowser1.DocumentStream = myWebResponse.GetResponseStream();
?????????????

??????????? }
??????????? catch { }


總結

以上是生活随笔為你收集整理的C# webbrowser 代理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。