ilikenba 发表于 2004-4-27 21:13

一段把文件拷贝到剪贴板的代码!

<P>bool CopyToClipboard(AnsiString file)
{
    int nLen;
    char* Data;
    HANDLE hMem;</P>
<P>    if (file.IsEmpty()) return false;</P>
<P>    nLen = 20 + file.Length() + 2;
    hMem = GlobalAlloc(GMEM_MOVEABLE
        |GMEM_DDESHARE|GMEM_ZEROINIT,
        nLen);
    if (hMem==NULL) return false;
    /*Data = (char*)GlobalLock(hMem);
    *(DWORD*)Data = 20;
    strcpy(Data+20, file.c_str());
    GlobalUnlock(hMem);*/
    if (OpenClipboard(NULL)) {
        EmptyClipboard();  //加上这一句
        if (SetClipboardData(
            CF_TEXT,hMem)!=0)
            hMem = NULL;
        CloseClipboard();
    }
    if (hMem) GlobalFree(hMem); </P>
<P>    return hMem ? false : true;
} </P>
<P>void __fastcall TForm1::Button1Click(TObject *Sender)
{
  CopyToClipboard(Edit1-&gt;Text);
  GetClipboardData(CF_OEMTEXT);
}
//---------------------------------------------------------------------------
CB6+update4在windows2000下通过!</P>
页: [1]
查看完整版本: 一段把文件拷贝到剪贴板的代码!