【问题标题】:C++, buffer carrying stored statement using Ctrl+CC++,使用 Ctrl+C 携带存储语句的缓冲区
【发布时间】:2014-05-25 12:17:08
【问题描述】:

我想使用 c++ 制作一个简单的 windows32 控制台应用程序,它获取存储在 CTRL+C 缓冲区中的内容并将其复制到 char 数组或字符串中。

示例:我选择单词“Hello”,按下 CTRL+C 然后程序将单词“Hello”(存储在缓冲区中)放入字符数组。

【问题讨论】:

  • 好主意??有问题吗?或者您只是在寻找指向Windows Clipboard API 的链接?
  • @JoachimPileborg 我不知道你是不是在开玩笑,但我认为 OP 想要复制剪贴板上的文本。
  • 是的@Massa,正是你所说的。

标签: c++ buffer copy-paste ctrl


【解决方案1】:

一个问题是 CTRL-C 不像大多数其他 CTRL-key 组合那样作为普通击键发送,这是因为 CTRL-Cbreak 信号,由控制台专门处理以向您的应用程序发送特殊的中断信号,如果您的应用程序不处理它,它将被终止。另一个问题是来自控制台的输入通常是基于行的,并且只有在用户按下换行符或 Enter 键后才能获得输入。

第一个问题的可能解决方案是使用SetConsoleCtrlHandler 函数设置处理函数来捕获信号,并在处理函数中告诉应用程序CTRL-C 已被按下。

解决这两个问题的方法是 change the console mode 不处理 CTRL-C,并禁用基于行的输入。

还请注意,通常 CTRL-C 用于将所选内容复制到剪贴板而不是从剪贴板,通常是 CTRL-V .


但处理击键只是问题的一小部分,因为您必须使用the clipboard 进行实际的复制粘贴。

【讨论】:

  • 当然我解释得很糟糕,抱歉,但我只想(以任何方式)获取剪贴板中存储的内容。
猜你喜欢
  • 2012-04-20
  • 1970-01-01
  • 2013-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多