龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > C/C++开发 >

将文件copy到剪贴板上

时间:2009-12-22 15:42来源:未知 作者:admin 点击:
分享到:
bool CopyToClipboard(AnsiString file); //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //---------------------------------------------------------

  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_DDESHAREGMEM_ZEROIN99v,

  

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;

  

}

  

精彩图集

赞助商链接