首页  编辑  

剪贴板格式和数据存储

Tags: /超级猛料/OS.操作系统/Clipboard.剪贴板/   Date Created:

回复人: disney(编程乐园) ( ) 信誉:100  2002-12-05 23:12:00  得分:0

 我发现大家都不看帮助文档,不分析代码,其实很简单的。

主要内容是这样的:剪贴板中可以同时存放多种数据,TClipboard类型

在FormatCount记录有数据的项数,Formats[]则是这些数据的类型,

WINAPI的GetClipboardFormatName函数可以得到数据类型的名字,IE

复制下来的数据一般有HTML format的数据,把它复制下来就是网页。

ASTEXT只是获得调用GetClipboardData(CF_TEXT),得到的一定是文本

数据。下面程序可得到贴板中的网页源码,前面还有加有源URL地址及

其它内容,一看就明白。

procedure TForm1.Button1Click(Sender: TObject);

var fn,html:string;

   i,fl,size:integer;

   data:thandle;

   p:pointer;      //数据指针

begin

 clipboard.Open;

 memo1.text:='';

 for i:=0 to Clipboard.FormatCount-1 do begin

   setlength(fn,100);

   fl:=GetClipboardFormatName(clipboard.Formats[i],@fn[1],200);

   setlength(fn,fl);

   if pos('HTML',fn)>0 then begin  //是HTML数据

     Data := GetClipboardData(clipboard.formats[i]);  //得到数据内存句柄

     try

       p:=GlobalLock(Data);

       size:=globalsize(data);  //得到数据大小

       setlength(html,size);    //设置保存区域

       move(p^,html[1],size);   //复制数据

     finally

     GlobalUnlock(Data);

     end;

     break;

   end;

 end;

 memo2.text:=html;

 clipboard.close;

end;

把网页保存到数据库中,使用类似MEMO、TEXT或映像字段即可。