制作多页面浏览器,请教!(100分)

  • 主题发起人 主题发起人 kelei0017
  • 开始时间 开始时间
K

kelei0017

Unregistered / Unconfirmed
GUEST, unregistred user!
最近突发奇想,做个多页面浏览器,这个和一般多页面浏览器不一样。
那里不一样?每个页面使用不同的代理服务器打开网页!!!!

想了好久,都没有思路,我是C/S系统,对这块不太清楚。
知道TIDHttp可以使用不同的代理连接网站,但我还需要将页面内容显示出来!
于是就想到了使用WebBrowser作为显示容器,但TIDHttp返回的代码又怎么在WebBrowser中显示呢?

郁闷了~~~~~

请这各位高手,想想法子,有代码那就更好了。
如果嫌分少的,开个价,说出你的法子,可行的话就另开贴给分。

再问一个:验证代理服务器是否可用,什么方法(简单)AND(准确),就主要的是准确。(别告诉我,自己设置IE代理测试,要用代码实现)

kl0017#163.com
 
其实不必要使用TIDHttp TIDHttp GET POST网页后还要分析这个网页 下载 这个网页上的图片啊什么的 太麻烦了!
这样就可以 使WebBrowser用代理 呵呵 不改变 其他代理!~
function Tebayvn.SetProxy(FProxy: string): Boolean;
var
Pinfo: INTERNET_PROXY_INFO;
begin
try
begin
Pinfo.dwAccessType := INTERNET_OPEN_TYPE_PROXY;
if FProxy<>'' then
Pinfo.lpszProxy := pchar(FProxy)
else
Pinfo.lpszProxy := pchar(nil);
InternetSetOption(nil, INTERNET_OPTION_PROXY, @Pinfo, SizeOf(PInfo));
InternetSetOption(nil, INTERNET_OPTION_SETTINGS_CHANGED, nil, 0);
Result:=True ;
end;
except
Result:=False;
end;
end;
 
WebBrowser显示内存内容的代码有现成的。
你只要将得到的内容传入webBrowser就可以了
function ShowHtml(mWebBrowser: TWebBrowser; mStrings: TStrings): Boolean;
var
vMemoryStream: TMemoryStream;
begin
Result := False;
if not (Assigned(mStrings) and Assigned(mWebBrowser)) then Exit;
mWebBrowser.Navigate('about:blank');
if not Assigned(mWebBrowser.Document) then Exit;
vMemoryStream := TMemoryStream.Create;
try
mStrings.SaveToStream(vMemoryStream);
try
vMemoryStream.Position := 0;
Application.ProcessMessages; // :)
(mWebBrowser.Document as IPersistStreamInit).Load(
TStreamAdapter.Create(vMemoryStream));
except
Exit;
end;
finally
vMemoryStream.Free;
end;
Result := True;
end; { ShowHtml }
 
谢谢回复!
现在没空,晚上测试!
 
to zgwxldw:
你的这个函数可以为不同的WebBrowser设置不同的代理吗?

to xiammy:
IPersistStreamInit是那个单元的,编译不过?

谢谢
 
其实简单的你可以测试啊
!~
每个WEB 页面指向一个可以看 IP 的地址啊!
贵在测试哦!
 
多人接受答案了。
 
后退
顶部