问题的提出:
我选取了网页中的部分文字及若干图片,并进行了复制
问题:能通过程序的方法,分别保存选择的文字及若干图片吗?
如果能保存,那如何用程序实现?
占用您的时间来看我的问题,谢谢,如果您有时间,还请解答,感谢!
我选取了网页中的部分文字及若干图片,并进行了复制
问题:能通过程序的方法,分别保存选择的文字及若干图片吗?
如果能保存,那如何用程序实现?
占用您的时间来看我的问题,谢谢,如果您有时间,还请解答,感谢!
解决方案 »
- 在serversocket的clientread事件中查询数据库出错
- 救急!access中如何对表进行删除和重命名?
- 请问VCL和CLX有什么区别啊?F1时都会跳出两个,我应该看哪一个?
- TJpegImage.LoadFromStream(mrevStream)报错JPEG Error #52 ?
- 代码全部大写!
- qruickreport 中的统计可以预览,但是运行时preview就不显示.会是什么原因?
- ★★★拒绝灌水、拒绝倒分、拒绝散分★★★-----※※※支持的进来签个名※※※------●●●让这里的空气更清新●●●
- 能否具体解释一下adoquery1.Parameters[n]等!
- 动态创建窗体时如何传递参数?
- 有没有人知道-大富翁-啊?
- 如何顺序播放几个flash?
- 关于删除表中数据的问题
换个方式问问题:IE浏览器中,选中了文字与图片,按CTRL+C,此时剪贴板中对应的是什么格式?
IE存常规剪贴板的数据只是TEXT的
IE存在OLE剪贴板中有HTML代码
没具体做过,需要分析下格式
var
dataObj : IDataObject;
EnumFormatEtc : IEnumFormatEtc;
FormatEtc: TFormatEtc;
Medium : TStgMedium;
pGlobal : Pointer;
hHResult:HResult;
begin
memo1.Clear;
OleInitialize(nil);
OleGetClipboard(dataObj);
dataObj.EnumFormatEtc(DATADIR_GET,EnumFormatEtc);
While EnumFormatEtc.Next(1, FormatEtc, nil) = S_OK do begin //枚举剪贴板数据格式
//也可以用dataObj.QueryGetDate直接查询是需要的接口格式
if FormatEtc.cfFormat=RegisterClipboardFormat('HTML Format') then begin
hHResult:=dataObj.GetData(FormatEtc, Medium);
if (Medium.tymed=TYMED_HGLOBAL) and (hHResult=S_OK) then begin
pGlobal := GlobalLock(Medium.hGlobal);
Memo1.Lines.Add(StrPas(pGlobal));
GlobalUnlock(Medium.hGlobal);
end;
ReleaseStgMedium(Medium);
end;
end;
end;
Memo1.Lines.Add(StrPas(pGlobal));
替换为
Memo1.Lines.Add(Utf8ToAnsi(StrPas(pGlobal)));楼主可以结帖啦
但是,我主题问的问题是在IE中按CTRL+A全选(网页有图片及文本),我的目的是不仅能保存那文本,还要保存图片,烦劳各位帮小弟解答,感激!(我已经在坛子里翻箱倒柜好几阵子了,没有实现,大富翁里也找不着实现方法)
CF_TEXT
CF_UNICODETEXT
HTML Format
3种格式
没有存入图片信息!!完整的HTML代码在剪贴板中头信息如下
Version:1.0
StartHTML:000000231
EndHTML:000027033
StartFragment:000006857
EndFragment:000026997
StartSelection:000006857
EndSelection:000026997
SourceURL:http://community.csdn.net/Expert/topic/4911/4911682.xml?temp=.762768
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">//具体html内容...变通一下
HTML源代码自己分析"<img"开头的就是图片连接,截获src后面的图片地址
配合"SourceURL"的绝对路径然后DOWN下来,最方便的是使用正则表达式