DELPHI WIN7下怎么实现同一进程启动或关闭IE代理啊

kisshexuxia 2016-01-03 08:10:24


procedure TFMain.btnSetClick(Sender: TObject);
begin
// TSetProxy.Create(edtIp.Text, EdtPort.Text);
ChangeProxy(edtIp.Text, EdtPort.Text,'1',true);
ShowMessage('设置完毕!');
end;

function TFMain.ChangeProxy(const Proxy, Port, ByPass: string; const bEnabled: boolean = True): boolean;
var
reg: Tregistry;
info: INTERNET_PROXY_INFO;
Fproxy: string;
begin
Result := False;
FProxy := Format('%s:%s', [Proxy, Port]);
reg := Tregistry.Create;
try
reg.RootKey := HKEY_CURRENT_USER;
if reg.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Internet Settings', True) then
begin
reg.Writestring('ProxyServer', Fproxy);
reg.WriteInteger('ProxyEnable', integer(bEnabled));
info.dwAccessType := INTERNET_OPEN_TYPE_PROXY;
info.lpszProxy := pAnsichar(proxy); //pchar
info.lpszProxyBypass := pAnsichar(ByPass);
//InternetSetOption((nil,INTERNET_OPTION_PROXY, @info, SizeOf(Info));
//InternetSetOption(nil, INTERNET_OPTION_SETTINGS_CHANGED, nil, 0);

InternetSetOption(nil, INTERNET_OPTION_SETTINGS_CHANGED, nil, 0);
InternetSetOption(nil, INTERNET_OPTION_REFRESH, nil, 0);
Result := True;
end
finally
reg.CloseKey;
reg.free;
end;
end;

procedure TFMain.btn1Click(Sender: TObject);
begin
ChangeProxy(edtIp.Text, EdtPort.Text,'1',False);
ShowMessage('设置完毕!');
end;

end.



在XP下以上代码可以同时设置和关系IE代理。
网上只找到一个c#实现了一起的
http://blog.csdn.net/debug__boy/article/details/8432879

...全文
1233 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧