如何在 C++ 中从剪贴板复制/粘贴?

发布于 2024-11-16 17:23:32 字数 99 浏览 3 评论 0原文

我仍然是一个 C++ 新手,最近才学习一些文件操作。我在网上查了一下,给出的代码远远超出了我目前的能力。有没有一种简单的方法可以做到这一点,或者有什么好的教程可以从基础知识解释这一点?

I'm still a C++ newbie who has only recently learned some file manipulation. I looked it up online and the codes given are way beyond my current skill. Is there a simple way to do this, or are there any good tutorials that can explain this from the very basics?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

轮廓§ 2024-11-23 17:23:32

Windows中查看以下 API:

广泛的讨论可以在此处找到
显然这个主题与操作系统密切相关。如果您正在使用某种框架(即 MFC/ATL),您通常会找到一些辅助基础设施。此回复指的是 WIndows 中最低的 API 级别。如果您打算使用 MFC 请查看此处,如果您更喜欢 ATL 查看此处

In windows look at the following API:

An extensive discussion can be found here.
Obviously this topic is strongly operating system related. And if you are using some framework (ie MFC/ATL) you generally find some helper infrastructure. This reply refer to the lowest API level in WIndows. If you are planning to use MFC have a look here, if you prefer ATL look here.

夏末 2024-11-23 17:23:32

在 C++ 中没有跨平台的方法来做到这一点


现在我们已经解决了这个问题,Felice Pollano 的 答案提供了 Windows API,以便您可以在 Windows 中操作剪贴板。

Apple 提供了一个名为 ClipboardViewer 以及对 NSPasteBoard 和它提供的功能。

至于Linux,这取决于您运行的窗口管理器。

There is no cross-platform way to do this in C++


Now that we have that out of the way, Felice Pollano's answer provides the Windows API so you can manipulate the clipboard in Windows.

Apple provides an example application named ClipboardViewer and an entire reference to the NSPasteBoard and the functionality it provides.

As for Linux, it depends on what windowing manager you are running.

猫瑾少女 2024-11-23 17:23:32

您可以使用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;
}

You can use ClipboardXX library for copy and pasting simple texts.
Just download clipboardXX.hpp from github and copy it to your project path. Then follow its examples:

#include "clipboard.hpp"
#include <string>

int main() {
    clipboardxx::clipboard clipboard;

    // copy
    clipboard << "text you wanna copy";

    // paste
    std::string paste_text;
    clipboard >> paste_text;
}

梦醒时光 2024-11-23 17:23:32

如果您愿意使用 Qt 库,则可以在 C++ 中通过跨平台方法来执行此操作。

此处提供了解决方案:

https://stackoverflow.com/a/40437290/2158002

There is a cross platform way to do this in C++, provided you are willing to use the Qt Library.

A solution for this is provided here:

https://stackoverflow.com/a/40437290/2158002

給妳壹絲溫柔 2024-11-23 17:23:32

此处显示的演示示例:

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QClipboard>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    QString originalText = "My name is khan";
    ui->label_text_to_copied->setText(originalText);
    connect(ui->pushButton, &QPushButton::clicked,this,&MainWindow::copy_stuff);
}
MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::copy_stuff()
{
    QClipboard *clipboard = QGuiApplication::clipboard();
    QString text_to_be_copied = ui->label_text_to_copied->text();
    clipboard->setText(text_to_be_copied);
    ui->label_copy_status->setText("Copied!");
}

A demo example shown here:

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QClipboard>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    QString originalText = "My name is khan";
    ui->label_text_to_copied->setText(originalText);
    connect(ui->pushButton, &QPushButton::clicked,this,&MainWindow::copy_stuff);
}
MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::copy_stuff()
{
    QClipboard *clipboard = QGuiApplication::clipboard();
    QString text_to_be_copied = ui->label_text_to_copied->text();
    clipboard->setText(text_to_be_copied);
    ui->label_copy_status->setText("Copied!");
}

娇柔作态 2024-11-23 17:23:32

如果您正在寻找一种简单的方法来执行此操作:模拟键盘组合 ctrl + v 就可以了。在所有平台上。

If you are looking for a simle way to do this : simulate the keyboard combination ctrl + v and you are done with it. On all platforms.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文