调用IE控件的方法。
(WB.Document as IHTMLDocument2).execCommand(),具体请察看MSDN。获得剪贴板的内容,可以通过剪贴板的API就可以得到了。

解决方案 »

  1.   

    var
     v : Variant;(WB.Document as IHTMLDocument2).execCommand('Copy', false, nil, v)这是方法原型
    HRESULT execCommand(
        BSTR cmdID,
        VARIANT_BOOL showUI,
        VARIANT value,
        VARIANT_BOOL* pfRet
    );不行你多试一试就可以了。
      

  2.   

    非常感谢小小网友的答复。您的方法好像是针对自己的浏览器控件进行编程,也就是说,必须实现自己的浏览器,然后才能够拷贝所选中的数据。——不知我的看法是否正确。大家不知道是否用过“网海拾贝”,该软件在IE浏览器的上下文菜单中加入了自己的功能菜单,例如“采集网页”、“采集网页选中部分”、“采集选中部分源代码”……这才是我想要的功能。请问,这些功能如何实现?需要COM技术吗?
      

  3.   

    哦,你的意思是从IE中拷贝以后,在Delphi中得到剪贴板的东西。你可以用操作剪贴板的API来取得。
    API调用顺序是:
    OpenClipboard()
    GetClipboardFormatName()
    GetClipboardData()
    CloseClipboard()
    具体参数,请查看MSDN另:在IE中增加菜单很容易,只需要修改注册表,然后添加菜单项,并通过一个html文件,在该文件中调用COM就可以完成你要做的功能了。
    HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt
    你可以参考他们是怎么做的,就知道了。
      

  4.   

    uses jclunicode;
    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看看我
    写的信息分拣机。