如何用DELPHI实现网页中Flash(SWF)文件的保存?[请各位帮忙](100分)

  • 主题发起人 主题发起人 刀剑如梦
  • 开始时间 开始时间

刀剑如梦

Unregistered / Unconfirmed
GUEST, unregistred user!
在程序中实现保存SWF文件!
 
自己顶一下吧,希望得您的指点!
 
简单的办法,浏览后,把Temporary Internet Files目录下的swf拷贝到你需要的目录下。
 
我想应该是先分析网页的源码,在从INTERNET缓存中提取该文件
 
var
iPos: integer;
dbimage: TBolbField;
begin

iPos:=1;
dbimage:=TBlobField.Create(Application.MainForm);
while posex('.swf',str,iPos)<>0do
//str 是网页内容字符串
begin

//查找所有swf文件,这段程序要执行两次,另一次寻找 SWF文件
iPos:=posex('.swf',str,iPos);
dbimage:=Adoquery1.fieldbyname('图片'+inttostr(i))as TBlobField;
dbimage.loadfromfile(Directory+copy(str,ipos-j+2,j+2));
memoPictureindex.Lines.add(copy(str,ipos-j+2,j+2)+' '+inttostr(i));
inc(iPos);
end;

 
有没有人试过上面的代码行不行?
 
楼主的代码有相关示例程序吗?我试了,不理解!
 
自己提一下,顺便介绍一下自己整理收集的一个程序!
[ZipFileTool压缩工具]
http://yckxzjj.vip.sina.com/developer/ZipFileTool.rar
 
有些网页代码里面没有之间swf连接地址的
 
网页源代码中若没有swf文件连接地址,浏览器如何调用播放Flash文件?
 
自己顶一下吧。请各位帮忙!
 
这么久了还没有人回答出来?
 
是不是没人会?
 
自己顶一下吧,希望得您的指点! 过几天结贴
 
偶谈一下自己的看法,

1.得到网页的html

2.找到所有含有.swf的字符串;写个函数得到他们的名称,也就是网页中所有flash文件的名称

3.得到 系统版本和当前 用户名称

4. 如是nt/2000/xp版本的
让程序到

到 系统盘:/Documents and Settings/用户名/Local Settings/Temporary Internet Files

查找 名称.swf文件

如是me/98版本,到相应的文件夹查找[偶没装98,忘了是哪个文件夹了]..

5.弹出确认窗口,然后保存.

以上每一步网上都有相关的delphi源码了,自己试一下吧
 
以上太繁!
所有的网业事实上都是放到硬盘后在用IE掉出看的.
所以象SWF之类的等你看到了,那他已在你的硬盘的IE临时文件夹里了.
因此你只要编个在IE临时文件夹里找SWF的程序就行了.最多加上时间检测,看是否是刚才的SFW.
 
恩,根据时间查找,是个好办法~

不过查找到的flash文件可能不是正在查看的网页的..

:(
 
抓取单帧图片并保存:
procedure TFlashPlayFileFrm.CopySingleFrame;

begin

FlashPlayFileFrm.ShockwaveFlash.Stop;

CopyBitMap := TBitmap.Create;

try
CopyBitMap.Width := FlashPlayFileFrm.ShockwaveFlash.Width;

CopyBitMap.Height := FlashPlayFileFrm.ShockwaveFlash.Height;

FlashPlayFileFrm.ShockwaveFlash.PaintTo(CopyBitMap.Canvas.Handle,0,0);

if SavePictureDialog.Execute then

CopyBitMap.SaveToFile(SavePictureDialog.FileName+'.bmp');

finally
CopyBitMap.Free;

end;


end;
 
结贴!谢谢各位!
 
后退
顶部