找回密码
 立即注册
收起左侧

剪贴板保存任意格式数据

0
回复
5521
查看
[复制链接]
累计签到:912 天
连续签到:3 天
来源: 2017-3-31 09:18:19 显示全部楼层 |阅读模式
1Qter豆
本帖最后由 红尘氵梦 于 2017-3-31 09:18 编辑

我想把剪贴板里面原有的数据复制出来(原来是完整,可用,任意格式的数据,如文件夹,图片,一段文字等一些日常的数据),然后剪贴板去复制其他东西,最后再把数据还回去,但是还回去的数据却是不能在粘贴了,下面是代码,其中保存数据的代码是百度上的,这样写有什么问题吗???
void MyHotKey::HC_SaveData(QMimeData *clipData)
{
QClipboard *clipBoard = QApplication::clipboard();
const QMimeData *mimeData = clipBoard->mimeData();
for (int i = 0; i < mimeData->formats().size(); i++)       //保存剪切板中数据
{
  QString type = mimeData->formats().at(i);        //保存剪切板中数据格式
  QByteArray data = mimeData->data(type);       //按照数据格式保存数据
  clipData->setData(type, data);
}
clipBoard->clear();
}
void MyHotKey::HC_ReductionData(QMimeData *clipData)
{
QClipboard *clipBoard = QApplication::clipboard();
clipBoard->clear();
clipBoard->setMimeData(clipData);
}
void MyHotKey::HC_GetText()
{
QClipboard *clipBoard = QApplication::clipboard();
QString strCopy = clipBoard->text();
qDebug() << strCopy;
}
void MyHotKey::tryClipbord()
{
QMimeData *clipData = new QMimeData;
HC_SaveData(clipData);
keybd_event(VK_CONTROL, 0, 0, 0);
keybd_event(0x43, 0, 0, 0);
keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0);
keybd_event(0x43, 0, KEYEVENTF_KEYUP, 0);
HC_GetText();
HC_ReductionData(clipData);
}

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了