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