怎样在程序中设置“internet选项”中的“http代理设置”?
主 题: 怎样在程序中设置“internet选项”中的“http代理设置”?
作 者: HarryPatton (天外飞仙)
等 级:
信 誉 值: 100
所属论坛: .NET技术 C#
问题点数: 100
回复次数: 12
发表时间: 2003-09-26 16:37:33
我需要在程序中自动设置或者关闭“internet选项”中的“http代理设置”,请问该怎么做?
回复人: changezhong(小刀) ( 二级(初级)) 信誉:100 2003-09-26 19:31:00 得分:0
gz
帮你up
回复人: saucer(思归) ( 五星(高级)) 信誉:325 2003-09-27 05:46:00 得分:0
change the registry, here is some C++ code:
Change Internet Proxy settings
http://www.codeproject.com/internet/changeproxy1.asp
Toggle Internet Proxy settings - an alternate approach
http://www.codeproject.com/internet/changeproxy2.asp
回复人: xamcsdn2(知了) ( 三级(初级)) 信誉:100 2003-09-27 09:02:00 得分:0
你可以在C#中调用系统的SHELL命令
cmd /k netsh -f tt.txt
tt.txt,假设是你的网络配置文件,由SHELL 命令cmd /k netsh -c interface dump > tt.txt
生成
回复人: HarryPatton(天外飞仙) ( 一级(初级)) 信誉:100 2003-09-27 10:15:00 得分:0
有没有更加简单的方法啊??
to xamcsdn2(知了) :可否给一个tt.txt的例子啊:)
回复人: gujunyan(ivy) ( 一星(中级)) 信誉:99 2003-09-27 10:23:00 得分:0
System.Net.GlobalProxySelection.Select
回复人: HarryPatton(天外飞仙) ( 一级(初级)) 信誉:100 2003-09-27 10:41:00 得分:0
to gujunyan(ivy):这种方法不能更改internet选项的代理设置。因为我的http请求是从ie而不是.net的WebRequest发出的,所以这种方法不能满足我的要求啊。
回复人: xamcsdn2(知了) ( 三级(初级)) 信誉:100 2003-09-27 13:56:00 得分:0
tt.txt可以自己生成。
在CMD窗口下输入netsh -c interface dump > c:\tt.txt
#========================
# 接口配置
#========================
pushd interface
reset all
popd
# 接口配置结束
# ----------------------------------
# 接口 IP 配置
# ----------------------------------
pushd interface ip
# "本地连接" 的接口 IP 配置
set address name = "本地连接" source = static addr = 202.168.0.224 mask = 255.255.255.0
set address name = "本地连接" gateway = 192.168.0.1 gwmetric = 1
set dns name = "本地连接" source = static addr = 202.135.0.1
set wins name = "本地连接" source = static addr = none
popd
# 接口 IP 配置结束
回复人: HarryPatton(天外飞仙) ( 一级(初级)) 信誉:100 2003-09-27 16:12:00 得分:0
to xamcsdn2(知了):
无法得到代理服务的信息
回复人: xamcsdn2(知了) ( 三级(初级)) 信誉:100 2003-09-28 09:27:00 得分:0
不好意思,我弄错了,我再看看。
回复人: yehanyu(幸福需要争取,努力中!) ( 四级(中级)) 信誉:100 2003-09-28 09:42:00 得分:0
up
回复人: HarryPatton(天外飞仙) ( 一级(初级)) 信誉:100 2003-09-28 10:40:00 得分:0
问题已解决,谢谢大家帮助:
以下是c#代码
//申明windows api
[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 static void SetProxy()
{
//打开注册表
RegistryKey regKey = Registry.CurrentUser;
string SubKeyPath = @"Software\Microsoft\Windows\CurrentVersion\Internet Settings";
RegistryKey optionKey = regKey.OpenSubKey(SubKeyPath,true);
//更改健值,设置代理,
optionKey.SetValue("ProxyEnable",1);
optionKey.SetValue("ProxyServer","192.168.1.85:80");
//激活代理设置
InternetSetOption(0,39,IntPtr.Zero,0);
InternetSetOption(0,37,IntPtr.Zero,0);
}
回复人: HarryPatton(天外飞仙) ( 一级(初级)) 信誉:100 2003-09-28 10:42:00 得分:0
问题已解决,谢谢大家帮助:
以下是c#代码
//申明windows api
[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 static void SetProxy()
{
//打开注册表
RegistryKey regKey = Registry.CurrentUser;
string SubKeyPath = @"Software\Microsoft\Windows\CurrentVersion\Internet Settings";
RegistryKey optionKey = regKey.OpenSubKey(SubKeyPath,true);
//更改健值,设置代理,
optionKey.SetValue("ProxyEnable",1);
optionKey.SetValue("ProxyServer","192.168.1.85:80");
//激活代理设置
InternetSetOption(0,39,IntPtr.Zero,0);
InternetSetOption(0,37,IntPtr.Zero,0);
}