【问题标题】:How do you copy/paste from the clipboard in C++?如何在 C++ 中从剪贴板复制/粘贴?
【发布时间】:2011-06-22 07:15:50
【问题描述】:

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

【问题讨论】:

  • 在什么操作系统上?在什么框架下?
  • 您使用的是哪个操作系统?
  • 什么操作系统,在 Linux 的情况下是什么剪贴板?
  • 与剪贴板的交互不是 (C++) 语言标准的一部分。如果使用框架,则必须使用操作系统的 API 函数或通常简化的访问函数。您可以使用附带大量教程的 Qt 框架,但您必须了解 Qt 的使用。希望会有所帮助
  • 啊,我不知道它依赖于操作系统。我使用的是 32 位 Windows 7。

标签: c++ copy clipboard paste


【解决方案1】:

windows 中查看以下 API:

广泛讨论can be found here。 显然,这个主题与操作系统密切相关。如果您使用一些框架(即 MFC/ATL),您通常会找到一些辅助基础设施。此回复指的是 WINdows 中最低的 API 级别。如果您打算使用 MFC have a look here,如果您更喜欢 ATL look here

【讨论】:

【解决方案2】:

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


既然我们已经解决了这个问题,Felice Pollano's answer 提供了 Windows API,因此您可以在 Windows 中操作剪贴板。

Apple 提供了一个名为 ClipboardViewer 的示例应用程序以及对 NSPasteBoard 及其提供的功能的完整引用。

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

【讨论】:

    【解决方案3】:

    只要您愿意使用 Qt 库,在 C++ 中有一种跨平台的方法可以做到这一点。

    这里提供了一个解决方案:

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

    【讨论】:

      【解决方案4】:

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

      【讨论】:

      • 不使用 bcc32 编译
      【解决方案5】:

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

      【讨论】:

      • 并非每个应用程序都支持Ctrl+C/V,即使在这种组合通常用于复制/粘贴的平台上也是如此。我之所以回答这个问题,是因为我需要在 Windows 应用程序中实现复制/粘贴 Ctrl+C/V 的功能。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-23
      • 1970-01-01
      • 1970-01-01
      • 2013-10-11
      • 1970-01-01
      • 2016-09-08
      相关资源
      最近更新 更多