一段把文件拷贝到剪贴板的代码!
<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->Text);
GetClipboardData(CF_OEMTEXT);
}
//---------------------------------------------------------------------------
CB6+update4在windows2000下通过!</P>
页:
[1]