应该是把已下载到本地的HTML(XML)格式文件保存为文本文件。
只要解析找到IE的存放地点和文件名就可以办到了。
只要解析找到IE的存放地点和文件名就可以办到了。
解决方案 »
- 三层Corba Server Application与Corba Object
- 什么网格控件能够完成任意拖动字段后,按行列分类汇总进行数据透视!?
- 急,关于字段的问题!~~~~~~~~~~~~~~
- 我在使用ADOQUERY时遇到的几个问题?很急,请高手指教!
- 过年导粪的注意啦!!
- 刚娃,,过来~~~~~~~给你找了个PLMM~~~~~
- DEPHI中也有这三种继承方式吗?
- 注意!!!!高分提问: 把delphi工程转换到C++Builder
- 求救listview显示问题
- 急!请问怎样才能如此连接ORACLE数据库?一定给分!!!
- 找不到“vdk32118.dll”????这是什么东西???
- 没在Delphi下做过COM,请给个例子参考一下,要有注释说明,另外不理解Delphi中的COMObject和AutometionObject有什么不同.
label Write;
var
Favorites:String;
Search:TSearchRec;
begin
Favorites:=GetFavoritesPath;
if Favorites='' then
begin
MessageBox(Handle,'访问收藏夹主键错误!','提示信息',MB_OK);
exit;
end;
Memo1.Clear;
with Search,Memo1.Lines do
begin
if FindFirst(Favorites+'*.url',0,Search)=0 then
begin
Write:
Add(GetFavoritesUrl(Favorites+Name));
SetLength(Name,Length(Name)-4);
Add(Name);
if FindNext(Search)=0 then
goto Write;
end;
end;
end;
function TForm1.GetFavoritesPath:String;
var
reg:TRegistry;
begin
Result:='';
reg:=TRegistry.Create;
with reg do
begin
RootKey:=HKEY_USERS;
if OpenKey('.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders',false)=true then
Result:=ReadString('Favorites')+'\';
CloseKey;
Free;
end;
end;{function TForm1.GetFavoritesUrl(FavoritesFile: String): String;
begin
with TIniFile.Create(FavoritesFile)do
begin
Result:=ReadString('InternetShortcut','URL','');
Free;
end;
end;}
function TForm1.GetFavoritesUrl(FavoritesFile: String): String;
var
i:integer;
begin
Result:='';
with TStringList.Create do
begin
LoadFromFile(FavoritesFile);
i:=IndexOf('[InternetShortcut]');
if i=-1 then
exit;
Result:=Strings[i+1];
System.Delete(Result,1,4);
Free;
end;
end;
IE6好像做了好多编程扩展,
比如说 在IE6里把鼠标移到大个图片上就会出现一个工具栏.
MSDN里应该有相关说明,不过会是C++描述的,新的api被不被支持也很难说.
使用dde技术
uses ddeman;
var
dde:TDDEClientConv;
begin
dde:=TDDEClientConv.create(self);
if dde.setlink('Iexplore','WWW_GetWindowInfo') then
edit1.text:=dde.requestdata('0xffffffff,sURL,sTitle')
else
showmessage('explore is not running');
end;
2、通过这个实例得到当前所有的IWebBrowser2接口。得到IWebBrowser2接口后再直接读它的源代码最后再保存就可以了。具体查看一下已解决问题部分,我记得有过这方面的问题。
一个窗口可以,可是多个IE呢?我怎么知道他是哪个?
怎么抓!我的意思是,不用二次下载!浏览器下载一次就够了!
就像ie6里自动出现的保存图片的工具栏一样,这样才有意义嘛.而且单独的程序也很难判断你要的是那个窗口的源文件.其实可以这样实现,通过在HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt上添加键值,做ie的右键菜单关连扩展,在写一个脚本,用vbscript,javascript都可以,把document对象保存就可以了.文件名可以用html的title,目录就需要你自己指定了.
其实flashget,netants提供的右键菜单里的 用...下载全部连接 就是用的这种方法.如果你装了flashget你可以到注册表里看看,还有flashget安装目录下
的jc_link.htm和jc_call.htm
这个方法其实是m$在platformSDK里说得,好像是shellextention吧.
那么可以用IHTMLDocument2来实现
这是微软的接口还可以这么做procedure TForm1.Button2Click(Sender: TObject);
var
doc:OleVariant;
begin
doc:=webbrowser1.Document;
showmessage(doc.all.item(1).outerHTML);
end;procedure TForm1.Button1Click(Sender: TObject);
begin
webbrowser1.Navigate('http://');
end;道理是一样的
用哪个API阿
大家一齐进步阿!
netscape的homepage里有plugin 教程,可能有点用处,
csdn的技术文档中也有关于在ie 里加入工具条的文档!
除此之外我就不知道了!
模拟 右键,V
模拟 Alt+V,C
皮毛?不会吧?我觉得这么多人说的都有点帮助啊!你没有试过其中的某种方法?
ActiveX; function WB_SaveHTMLCode(WebBrowser: TWebBrowser; const FileName: TFileName): Boolean;
var
ps: IPersistStreamInit;
fs: TFileStream;
sa: IStream;
begin
ps := WebBrowser.Document as IPersistStreamInit;
fs := TFileStream.Create(FileName, fmCreate);
try
sa := TStreamAdapter.Create(fs, soReference) as IStream;
Result := Succeeded(ps.Save(sa, True));
finally
fs.Free;
end;
end; function WB_GetHTMLCode(WebBrowser: TWebBrowser; ACode: TStrings): Boolean;
var
ps: IPersistStreamInit;
ss: TStringStream;
sa: IStream;
s: string;
begin
ps := WebBrowser.Document as IPersistStreamInit;
s := '';
ss := TStringStream.Create(s);
try
sa := TStreamAdapter.Create(ss, soReference) as IStream;
Result := Succeeded(ps.Save(sa, True));
if Result then ACode.Add(ss.Datastring);
finally
ss.Free;
end;
end; procedure TForm1.Button1Click(Sender: TObject);
begin
WB_SaveHTMLCode(Webbrowser1, 'c:\test.txt');
end; procedure TForm1.Button2Click(Sender: TObject);
begin
WB_GetHTMLCode(Webbrowser1, Memo1.Lines);
end;
ActiveX; function WB_SaveHTMLCode(WebBrowser: TWebBrowser; const FileName: TFileName): Boolean;
var
ps: IPersistStreamInit;
fs: TFileStream;
sa: IStream;
begin
ps := WebBrowser.Document as IPersistStreamInit;
fs := TFileStream.Create(FileName, fmCreate);
try
sa := TStreamAdapter.Create(fs, soReference) as IStream;
Result := Succeeded(ps.Save(sa, True));
finally
fs.Free;
end;
end; function WB_GetHTMLCode(WebBrowser: TWebBrowser; ACode: TStrings): Boolean;
var
ps: IPersistStreamInit;
ss: TStringStream;
sa: IStream;
s: string;
begin
ps := WebBrowser.Document as IPersistStreamInit;
s := '';
ss := TStringStream.Create(s);
try
sa := TStreamAdapter.Create(ss, soReference) as IStream;
Result := Succeeded(ps.Save(sa, True));
if Result then ACode.Add(ss.Datastring);
finally
ss.Free;
end;
end; procedure TForm1.Button1Click(Sender: TObject);
begin
WB_SaveHTMLCode(Webbrowser1, 'c:\test.txt');
end; procedure TForm1.Button2Click(Sender: TObject);
begin
WB_GetHTMLCode(Webbrowser1, Memo1.Lines);
end;
剩下的散分!衷心谢谢CSDN的朋友给我的帮助,在这里Dext有礼了!(鞠躬)在无边的网路上有这么多朋友帮忙,是缘分!