我想使用c ++制作一个简单的windows32控制台应用程序,它使用存储在 CTRL + C 缓冲区中的内容并将其复制到char数组或字符串中。
示例:我选择单词" Hello",我按 CTRL + C 然后程序输入单词" Hello&# 34; (存储在缓冲区中)在char数组中。
答案 0 :(得分:0)
一个问题是 CTRL-C 不会像大多数其他 CTRL-key 组合那样作为正常击键发送,这是因为 CTRL-C 是 break 信号,由控制台专门处理,向您的应用程序发送一个特殊的中断信号,如果您的应用程序没有处理它,那么它将被终止。另一个问题是来自控制台的输入通常是基于行的,只有在用户按下换行符或 Enter 键后才能输入。
第一个问题的可能解决方案是使用SetConsoleCtrlHandler
函数设置处理函数来捕获信号,并在处理程序中告诉应用程序 CTRL-C 已经按压。
这两个问题的解决方案是change the console mode不处理 CTRL-C ,并禁用基于行的输入。
另请注意,通常 CTRL-C 用于将选定的内容复制到剪贴板而非复制,通常是 CTRL-V
但是处理击键只是问题的一小部分,因为你必须使用the clipboard进行实际的复制粘贴。