bool CopyToClipboard(AnsiString file); //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender) { CopyToClipboard("C:\\scandisk.log"); } //--------------------------------------------------------------------------- //收集整理:http://www.ccrun.com (C++ Builder 研究) //--------------------------------------------------------------------------- bool CopyToClipboard(AnsiString file) { int nLen; char* Data; HANDLE hMem;
if (file.IsEmpty()) return false;
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_HDROP,hMem)!=0) hMem = NULL; CloseClipboard(); } if (hMem) GlobalFree(hMem);
return hMem ? false : true; }
|