delphi 谁帮我翻译下这段代码——高分
//是浏览览器个基于多线程的模拟浏览器的 Get 和Post 方法的类,具体我也不大清楚,,
//也只能大概说说了.
unit web;
interface
uses
Classes,IdHTTP,SysUtils,IdCookieManager,IdMultipartFormData
,windows;
//类的声明
type
TWeb = class(TThread)
private
protected
procedure Execute; override; //重写父类TThread的Exeecute方法.
public
mode: Integer; //标志位:根据这个判断是Get还是Post
url: string; //Url地址
idhttp: TIDHttp; //Indy 的http组件
sl: TStringList;
mpfDS: TIdMultiPartFormDataStream; //用这个控件实现 Stream的提交方法的.
flag: Boolean; //标志位,代码没有读懂,不知道是控制什么状态的
err,html: string;
stm: TMemoryStream;
constructor create; //构建函数
end;
implementation
//构造函数 ,全是初始化声明的类,没啥好说的.
constructor TWeb.create;
begin
idhttp := TIDHttp.Create(nil);
idhttp.CookieManager := TIDCookieManager.Create(idhttp);
sl := TStringList.Create();
mpfDS := TIdMultiPartFormDataStream.Create();
stm := TMemoryStream.Create();
FreeOnTerminate := True; //这也是个标志位: 当中断时候释放
inherited Create(True);
end;
//重写父类TThread的Exeecute方法.
procedure TWeb.Execute;
begin
while not Terminated do
begin
Sleep();
if Suspended then continue; //不懂,估计是多线程的同步处理?
flag := True;
err := '';
html := '';
//根据mode判断执行的功能 1 :Get文本 2:Get 流 3 提交数组ts是上面定义的一个数组 4 提交Stream,估计是提交类似,文件一类的东西
Case mode of //1:get text 2:get stream 3:post ts 4:post mpfDS
1:
begin
try
html := idhttp.Get(url); //这个用Indy的idhttp 获取URL地址的内容.文本方式.
except
on e:exception do begin
flag := False;
err := e.Message;
end;
end;
end;
2:
begin
stm.Clear();
try
idhttp.Get(url,stm); //用Indy的idhttp 获取URL内容 ,Stream方式
except
on e:exception do begin
flag := False;
err := e.Message;
end;
end;
end;
//也是用Indy的idhttp实现提交功能, 没时间详细些了,lz可以查看INDY组件IDHTTP的控件的详细使用方法.
//可以hi我再进行交流...
3:
begin
try
html := idhttp.Post(url,sl);
except
on e:exception do begin
flag := False;
err := e.Message;
end;
end;
end;
4:
begin
try
html := idhttp.Post(url,mpfDS);
except
on e:exception do begin
flag := False;
err := e.Message;
end;
end;
end;
5:
begin
idhttp.Request.ContentType := 'application/x-www-form-urlencoded';
try
html := idhttp.Post(url,stm);
except
on e:exception do begin
flag := False;
err := e.Message;
end;
end;
end;
end;
if (html<>'') and (Pos('utf',LowerCase(idhttp.Response.ContentType))>0) then
html := Utf8Decode(html);
Suspended := True;
end;
idhttp.Free();
sl.Free();
mpfDS.Free();
stm.Free(); //释放...
end;
end.
Delphi 网络调试助手 源码
浏览器辅助对象BHO(浏览器辅助对象)是IE浏览器的ATL COM对象在启动时自动加载。 BHO在IE的器源地址空间中运行,能够各种类型的发浏IE浏览器中的事件消息可以访问该对象的聆听,并采取适当的浏览览器行动。因此,器源商品贴溯源码当IE浏览器已成为主要的发浏溯源码燕窝拆封入口进入网络世界,BHO自然成为热点,浏览览器无论是器源延长或IE浏览器的功能辅助软件讨厌流氓软件,所有的发浏BHO青睐有加。因此,浏览览器BHO插件的器源IE浏览器的扩展功能到底如何发展呢?这里要开发一个特定的URL过滤的BHO插件实例。
浏览器事件监听器
在Delphi 7,发浏新的浏览览器正品验证系统源码ActiveX Library项目MyBHO。然后在工程,器源命名为MyIEBHO创建COM对象。发浏作为一种特殊的COM对象,BHO必须实现两个接口的博乐达源码mangoIObjectWithSite和IDispatch的浏览器,它的IObjectWithSite接口用来钩和监控浏览器事件进行通信。
IE浏览器BHO加载时,将自己的IUnknown接口与pUnkSite参数的BHO。通过pUnkSite分辨率,app钓鱼源码下载你可以让浏览器界面的IWebBrowser2。而获得的IWebBrowser2后,又得到了浏览器事件的连接点接口。建议的方法,然后使用这个接口,就可以实现浏览器的事件侦听器。的IObjectWithSite接口包含GetSite和SetSite方法,其中,通过SetSite实现的主要功能的IObjectWithSite接口。
留下邮箱吧。 。发送到您的邮箱。 。
2024-11-13 09:59
2024-11-13 08:26
2024-11-13 08:05
2024-11-13 07:43
2024-11-13 07:34