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

qacovj5a  于 12个月前  发布在  其他
关注(0)|答案(6)|浏览(155)

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

lc8prwob

lc8prwob1#

在***windows***中查看以下API:

一个广泛的讨论can be found here.显然这个主题是强烈的操作系统相关.如果你正在使用一些框架(即MFC/ATL),你通常会发现一些帮助器基础设施.这个回复是指在WinXP的最低API级别.如果你打算使用MFC have a look here,如果你喜欢ATL看这里.

dy2hfwbg

dy2hfwbg2#

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

现在我们已经解决了这个问题,Felice Pollano的答案提供了Windows API,因此您可以在Windows中操作剪贴板。
Apple提供了一个名为ClipboardViewer的示例应用程序,以及对NSPasteBoard及其提供的功能的完整引用。
至于Linux,这取决于您正在运行的窗口管理器。

5q4ezhmt

5q4ezhmt3#

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

字符串

g52tjvyc

g52tjvyc4#

在C++中有一种跨平台的方法来做到这一点,只要你愿意使用Qt库。
这里提供了一个解决方案:
https://stackoverflow.com/a/40437290/2158002

8fsztsew

8fsztsew5#

这里显示了一个演示示例:

#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!");
}

字符串

yquaqz18

yquaqz186#

如果你正在寻找一个简单的方法来做到这一点:模拟键盘组合cnc + v,你就完成了。在所有平台上。

相关问题