我可以为C#控制台窗口提供复制/粘贴功能吗?

39

我正在使用C#开发控制台应用程序,想知道是否有办法在我的应用程序中获取“复制-粘贴”或“标记-粘贴”功能,类似于标准的Windows命令提示符。这是一项难以实现的任务还是一个简单的应用程序变量?


为了向不熟悉Windows命令提示符的人解释,您通常可以在控制台窗口中右键单击,在上下文菜单中选择“标记”,切换到标记模式,然后可以突出显示窗口块。按Enter键将此输出放入剪贴板中。 - Simpleton
1
不清楚你的意思是什么。如果你正在开发一个控制台应用程序,那么可以使用cmd.exe内置的功能来进行复制粘贴操作。 - Sean
5个回答

68

我经常将控制台窗口中的文本复制并粘贴到其他地方。

在控制台应用程序中,它是默认存在的;

右键单击控制台边框:

第一步

选择编辑 > 标记:

第二步

使用鼠标拖动(或使用箭头键)选定所需文本:

第三步

再次右键单击控制台边框,选择编辑 > 复制:

第四步

从这里,您可以像处理其他文本一样将其粘贴到另一个应用程序中。

这是从C#控制台应用程序中获取的,并且输入的唯一代码是写入控制台的命令,未更改任何设置。

希望这有所帮助!


2
从键盘上,使用 Alt+Space E K 进入标记模式,使用 Alt+Space E P 粘贴。虽然不完美,但对我来说比使用鼠标更快。 - Gene Pavlovsky

48

感谢Sean让我意识到这个问题完全是愚蠢的。 我要成为给别人树立榜样的人,不要轻易下结论。

Sean指出:“可以使用cmd.exe内置功能进行复制和粘贴”,让我认识到,在Windows中运行命令行应用程序时,它已经具备了此功能。

我犯了错误,因为我最初的所有测试都是通过IDE进行DEBUG执行,而vshost并没有提供此功能。

快速地“启动时不调试”揭示了我的短视。


11
如果调试窗口也能复制和粘贴就太好了。 - Vaccano
11
稍等一下,是的,你可以这样做。也许在过去的四年里有所改变,但你可以通过右键单击顶部的标题栏 - 即使在Visual Studio IDE中,即使在调试模式下也可以。与cmd.exe唯一的区别是你无法右键单击黑色窗口 - 只能右键单击标题栏。 - BritishDeveloper

21

我不知道为什么没有任何答案包括这个,但正如Robert H.在评论中所述,这是非常有用的信息,如果你在VisualStudio环境中搜索此问题:

在调试器中运行控制台应用程序(F5)。您无法复制或粘贴。 在调试器外部运行(使用Control + F5)。现在,您可以复制和粘贴。

对我来说效果很不错。 谢谢Robert H.!


这实际上非常有用。谢谢! - Skaparate

1

请问,您的默认命令提示符行为是完全无法使用,还是不符合您的要求?

据我所知,终端实现提供了复制/粘贴行为,但它提供的与 Windows 的其余部分不匹配。要更改此行为,您需要切换实现终端的程序。以下是一些在 Google 搜索“命令提示符替代品”时出现的程序:
http://www.powercmd.com/
http://sourceforge.net/projects/console/

在这两个中,我认为我的一个同事尝试过“Console”。它做到了他想要的大部分功能,因此他不再需要寻找其他替代品。

如果您只想让此特定程序的输出更像 Windows 的其余部分,则另一种选择是将其制作为 Windows 程序。

编辑:修正了 Console 的 URL。之前是发布到某人的博客上链接到它的 :)


2
在调试器中运行控制台应用程序(F5)。您无法复制或粘贴。在调试器之外运行它(Control + F5)。现在,您可以复制和粘贴。提问者正在调试器中运行它。如果您想在附加调试器的情况下复制或粘贴,则似乎没有办法(至少在此版本的IDE中)。 - Robert H.
@RobertH.:没错。他的被采纳的答案也是这么说的。不过指出这一点还是很好的。 - Merlyn Morgan-Graham

1
也许我来晚了,但是在c#控制台窗口中有一种快捷方式可以粘贴文本。按下Alt+Space然后'E',接着输入'P',你就可以将文本粘贴到控制台窗口中了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接