永发信息网

剪贴板怎么操作

答案:2  悬赏:10  手机版
解决时间 2021-02-18 11:30
剪贴板怎么操作
最佳答案
// 复制数据至剪切板
BOOL CopyToClipboard(const char* pszData, const int nDataLen)
{
if(::OpenClipboard(NULL))
{
::EmptyClipboard();
HGLOBAL clipbuffer;
char *buffer;
clipbuffer = ::GlobalAlloc(GMEM_DDESHARE, nDataLen+1);
buffer = (char *)::GlobalLock(clipbuffer);
strcpy(buffer, pszData);
::GlobalUnlock(clipbuffer);
::SetClipboardData(CF_TEXT, clipbuffer);
::CloseClipboard();
return TRUE;
}
return FALSE;
}

// 从剪切板中取得数据
BOOL GetTextFromClipboard()
{
if(::OpenClipboard(NULL))
{
//获得剪贴板数据
HGLOBAL hMem = GetClipboardData(CF_TEXT);
if(NULL != hMem)
{
char* lpStr = (char*)::GlobalLock(hMem);
if(NULL != lpStr)
{
//MessageBox(0, lpStr, "", 0);
::GlobalUnlock(hMem);
}
}
::CloseClipboard();
return TRUE;
}
return FALSE;
}

//////////////////////////////////////////////////////////////////
模拟Ctrl+V
keybd_event(VK_CONTROL,0,0,0);
keybd_event('V',0,0,0);
keybd_event('V',0,KEYEVENTF_KEYUP,0);
keybd_event(VK_CONTROL,0,KEYEVENTF_KEYUP,0);
全部回答
写了一个例子,其中的slxcopysinglefiletoclipboard函数可以将一个文件拷贝到剪切板。代码如下: #include #include #include bool slxcopysinglefiletoclipboard(lpcstr lpfiletocopy) {     dword dwlength = lstrlen(lpfiletocopy) + 1;     dword dwbuffersize = dwlength + 1 + sizeof(dropfiles);     char *lpbufferall = new char[dwbuffersize];     if(lpbufferall != null)     {         dropfiles *pslxdropfiles = (dropfiles *)lpbufferall;         pslxdropfiles->fnc = false;         pslxdropfiles->pt.x = 0;         pslxdropfiles->pt.y = 0;         pslxdropfiles->fwide = false;         pslxdropfiles->pfiles = sizeof(dropfiles);         lpstr lpfile = lpbufferall + sizeof(dropfiles);         lstrcpy(lpfile, lpfiletocopy);         lpfile[dwlength] = '\0';         hglobal hgblfiles = globalalloc(gmem_zeroinit | gmem_moveable | gmem_ddeshare, dwbuffersize);         if(hgblfiles != null)         {             lpstr lpgbldata = (char *)globallock(hgblfiles);             if(lpgbldata != null)             {                 memcpy(lpgbldata, lpbufferall, dwbuffersize);                 globalunlock(hgblfiles);             }         }         if(openclipboard(null))         {             emptyclipboard();             setclipboarddata(cf_hdrop, hgblfiles);             closeclipboard();         }         delete []lpbufferall;         return true;     }     return false; } int main() {     slxcopysinglefiletoclipboard("c:\\windows\\notepad.exe");     return 0; }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
开中医推拿需要什么证件
承德县出口(下板城互通立交出口东向)在什么地
造梦西游3年兽怎么领悟奥义
上海大学到北蔡镇陈春东路99弄
在楼房前面 英语怎么说
重庆美女皮肤为什么这么好?
快递从潍坊转运中心公司到胶南需要多长时间
广西南宁鼎国旅游咨询服务有限公司我想知道这
核桃怎样保存最好
学籍证明是个什么东西?
我昨晚做了一个梦,梦见我女儿走丢了,请问是
安振集团产品销售服务中心在哪里啊,我有事要
读下列材料,回答问题。2009年,德国启动了开
求相声和小品的MP4下载网址,要好的网站
宁安市青少年活动中心在什么地方啊,我要过去
推荐资讯
怎样才能当童星,长得不漂亮,学习不好,能当
小学体育保健课可以上些什么
苹果手机怎么偷别人家无线网求教
如何将《巨鹿之战》编为历史剧
【有个生字不知道读什么?流 把三点水改成
罚款入什么科目
有关对流层大气热量来源的叙述,正确的是A.
非婚生子女扶养协议书该怎样写,怎样才能生效
关于老师打学生的法律问题
画到的建筑剖面有剖到玻璃幕墙,请问剖到的幕
东寺巷/古牧地中路南四巷(路口)我想知道这个
泰丰超级市场地址在哪,我要去那里办事
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?