WINDWOS 复制文件到剪切板

来源:互联网 发布:辩论赛网络利大于弊 编辑:程序博客网 时间:2024/06/05 02:37
转自-快眼搜索  http://www.kyan.com.cnstatic int CopyFileToClipboard(char szFileName[]){UINT uDropEffect;HGLOBAL hGblEffect;LPDWORD lpdDropEffect;DROPFILES stDrop;HGLOBAL hGblFiles;LPSTR lpData;//与剪贴板交互的数据格式并非标准剪贴板格式,因此需要注册uDropEffect = RegisterClipboardFormatA("Preferred DropEffect");//为剪贴板数据分配空间hGblEffect = GlobalAlloc(GMEM_ZEROINIT | GMEM_MOVEABLE | GMEM_DDESHARE,sizeof(DWORD));lpdDropEffect = (LPDWORD)GlobalLock(hGblEffect);//设置操作的模式*lpdDropEffect = DROPEFFECT_COPY;//复制; 剪贴则用DROPEFFECT_MOVEGlobalUnlock(hGblEffect);//剪贴板数据需要一个这个结构stDrop.pFiles = sizeof(DROPFILES);//文件列表相对于结构的偏移量stDrop.pt.x = 0;stDrop.pt.y = 0;stDrop.fNC = FALSE;stDrop.fWide = FALSE;//宽字符设置//分配数据空间,并且预留文件名的空间//文件列表为两个'\0'结尾,因此需要多分配2个字节hGblFiles = GlobalAlloc(GMEM_ZEROINIT | GMEM_MOVEABLE | GMEM_DDESHARE,\sizeof(DROPFILES)+strlen(szFileName)+2);lpData = (LPSTR)GlobalLock(hGblFiles);memcpy(lpData,&stDrop,sizeof(DROPFILES));strcpy(lpData+sizeof(DROPFILES),szFileName);GlobalUnlock(hGblFiles);//普通的剪贴板操作OpenClipboard(NULL);EmptyClipboard();//设置剪贴板文件信息SetClipboardData(CF_HDROP,hGblFiles);//设置剪贴板操作信息SetClipboardData(uDropEffect,hGblEffect);CloseClipboard();return 1;}
<span style="font-size:32px;"><strong>http://www.kyan.com.cn<img src="http://img.blog.csdn.net/20141119111928620?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbWFndW9qdW4xMjM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" /></strong></span>

0 0
原创粉丝点击