各位,在浏览器(IE)中选定内容并拷贝到剪贴板后,如何在Delphi中获得剪贴板中的HTML代码? 调用IE控件的方法。(WB.Document as IHTMLDocument2).execCommand(),具体请察看MSDN。获得剪贴板的内容,可以通过剪贴板的API就可以得到了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 var v : Variant;(WB.Document as IHTMLDocument2).execCommand('Copy', false, nil, v)这是方法原型HRESULT execCommand( BSTR cmdID, VARIANT_BOOL showUI, VARIANT value, VARIANT_BOOL* pfRet);不行你多试一试就可以了。 非常感谢小小网友的答复。您的方法好像是针对自己的浏览器控件进行编程,也就是说,必须实现自己的浏览器,然后才能够拷贝所选中的数据。——不知我的看法是否正确。大家不知道是否用过“网海拾贝”,该软件在IE浏览器的上下文菜单中加入了自己的功能菜单,例如“采集网页”、“采集网页选中部分”、“采集选中部分源代码”……这才是我想要的功能。请问,这些功能如何实现?需要COM技术吗? 哦,你的意思是从IE中拷贝以后,在Delphi中得到剪贴板的东西。你可以用操作剪贴板的API来取得。API调用顺序是:OpenClipboard()GetClipboardFormatName()GetClipboardData()CloseClipboard()具体参数,请查看MSDN另:在IE中增加菜单很容易,只需要修改注册表,然后添加菜单项,并通过一个html文件,在该文件中调用COM就可以完成你要做的功能了。HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt你可以参考他们是怎么做的,就知道了。 uses jclunicode;procedure TForm1.Button1Click(Sender: TObject);varmyhandle:thandle;textptr:pchar;mystring:string;mystrlist:tstringlist;widemystring:widestring;cf_html:uint;begin mystrlist:=tstringlist.Create ; cf_html:=registerclipboardformat('html format'); clipboard.open; try myhandle:=clipboard.getashandle(cf_html); textptr:=globallock(myhandle); // mystring:=strpas(textptr); widemystring:=UTF8ToWideString(textptr); mystring:=WideStringToStringEx(widemystring,936); // mystring:=unicodetoansi(textptr); globalunlock(myhandle); finally clipboard.close; end;这是正解。要用到jclunicode.可到http://delphibase.yeah.net看看我写的信息分拣机。 Delphi中DBGrid显示主从表的问题 delphi上 用ADOQuery导入数据问题?? 程序缩到系统托盘后不响应消息?! 怎样动态建立多个自定义类型的变量? 如何在动态生成的combobox中再添加一项,并让这一项显示在第一行 多谢XDJM 对于一个panel中的所有control,怎么得到他们的text值? 在一个模块里定义一个数据库连接,然后其它模块共享这个连接,这样会不会出什么问题? 请大家推荐详细介绍windows各消息含义的网站,up有分 Delphi 中如何用函数作参数???急!急!急!(内空) 帮忙看看 如何封锁QQ,就是屏蔽该段IP,怎样操作!
v : Variant;(WB.Document as IHTMLDocument2).execCommand('Copy', false, nil, v)这是方法原型
HRESULT execCommand(
BSTR cmdID,
VARIANT_BOOL showUI,
VARIANT value,
VARIANT_BOOL* pfRet
);不行你多试一试就可以了。
API调用顺序是:
OpenClipboard()
GetClipboardFormatName()
GetClipboardData()
CloseClipboard()
具体参数,请查看MSDN另:在IE中增加菜单很容易,只需要修改注册表,然后添加菜单项,并通过一个html文件,在该文件中调用COM就可以完成你要做的功能了。
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt
你可以参考他们是怎么做的,就知道了。
procedure TForm1.Button1Click(Sender: TObject);
var
myhandle:thandle;
textptr:pchar;
mystring:string;
mystrlist:tstringlist;
widemystring:widestring;
cf_html:uint;
begin
mystrlist:=tstringlist.Create ;
cf_html:=registerclipboardformat('html format');
clipboard.open;
try
myhandle:=clipboard.getashandle(cf_html);
textptr:=globallock(myhandle); // mystring:=strpas(textptr);
widemystring:=UTF8ToWideString(textptr);
mystring:=WideStringToStringEx(widemystring,936); // mystring:=unicodetoansi(textptr);
globalunlock(myhandle);
finally
clipboard.close; end;
这是正解。要用到jclunicode.可到http://delphibase.yeah.net看看我
写的信息分拣机。