如何在C++中从剪贴板复制/粘贴
How do you copy/paste from the clipboard in C++?
我还是一个C++新手,最近才学会一些文件操作。我在网上查了一下,给出的代码远远超出了我目前的技能。有没有一种简单的方法可以做到这一点,或者有什么好的教程可以从最基本的角度解释这一点?
在窗口中查看以下API:
- OpenClipBoard
- 空剪贴板
- 设置剪贴板数据
- 关闭剪贴板
- 获取剪贴板数据
可以在这里找到广泛的讨论。显然,这个主题与操作系统密切相关。如果你使用一些框架(即MFC/ATL),你通常会找到一些辅助基础设施。此回复是指WIndows中的最低API级别。如果您计划使用MFC,请查看此处,如果您更喜欢ATL,请查看这里。
在C++中没有跨平台的方法来实现这一点
现在我们已经解决了这个问题,Felice Pollano的答案提供了Windows API,这样你就可以在Windows中操作剪贴板。
Apple提供了一个名为ClipboardViewer的示例应用程序,以及对NSPasteBoard及其提供的功能的完整引用。
至于Linux,这取决于您正在运行的窗口管理器。
如果您愿意使用Qt库,C++中有一种跨平台的方法可以做到这一点。
这里提供了一个解决方案:
https://stackoverflow.com/a/40437290/2158002
您可以使用ClipboardXX库来复制和粘贴简单文本。只需从github下载clipboardXX.hpp
并将其复制到您的项目路径即可。然后以为例
#include "clipboard.hpp"
#include <string>
int main() {
clipboardxx::clipboard clipboard;
// copy
clipboard << "text you wanna copy";
// paste
std::string paste_text;
clipboard >> paste_text;
}
如果你正在寻找一种简单的方法来实现这一点:模拟键盘组合ctrl+v,你就完成了。在所有平台上。
相关文章:
- C++剪贴板队列粘贴随机结果?
- 将缓冲区复制到剪贴板 [换行错误]
- wxWidgets mac剪贴板在3.1.3上坏了?
- 获取剪贴板数据(CF_HDROP)在剪切和粘贴中失败
- 将矢量复制到剪贴板
- Linux/C++ 将字符串复制到剪贴板
- 从表视图复制到剪贴板
- 无法将 HTML 格式的 unicode(wchar_t 使用)复制到剪贴板
- BitBlt从剪贴板复制位图会给出错误的颜色
- 将文本复制到 MFC 中的剪贴板
- 如何将字符数组复制到剪贴板
- 通过QT将(rtf)表复制到剪贴板(或:将QTextDocument写入剪贴板)
- 将 unicode 字符串复制到剪贴板不起作用
- 如何在qt的剪贴板上复制lineEdit的内容
- 复制和粘贴剪贴板从不同的应用程序
- 在c++中复制到剪贴板
- 如何在C++中从剪贴板复制/粘贴
- 将 QML 项目作为图像复制到剪贴板C++
- C++:如何将多个对象复制到剪贴板并在之后提取它们
- C++ WINAPI 按钮剪贴板 - 复制操作