问题标签 [console-application]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - 控制台应用程序问题(构建版本/未加载解决方案文件)
我有几个关于 .net 控制台应用程序的问题。
我创建了控制台应用程序,并在创建过程中包含了一个解决方案文件,但是当我打开解决方案文件时,它只显示项目,而不是解决方案。为什么解决方案资源管理器中没有加载解决方案?
另外,我似乎无法在“发布”模式下构建项目;只能调试。我将“编译/配置”和“调试/配置”切换为发布,但它没有构建“bin\release”文件夹。
任何指向文档的指针都将不胜感激。
谢谢
visual-studio - 将控制台重定向到 app.config 中的 Visual Studio 调试输出窗口
我想让我的命令和我的语句Console.WriteLine()
一起出现在我的“输出”窗口中。Debug.WriteLine()
我想我曾经想过如何做到这一点,但我不记得/在谷歌上找到如何再次做到这一点。我似乎记得能够在app.config
文件中执行此操作。
我找到了大量关于如何让控制台和调试语句出现在控制台输出中的说明,但没有找到如何让它们出现在“输出”窗口中的说明。
是否可以?
c# - 抑制第 3 方库控制台输出?
我需要调用一个恰好向控制台喷出一堆东西的第 3 方库。代码就像这样......
有没有一种简单的方法来抑制来自第三方库的不需要的控制台输出?出于性能原因,不能在解决方案中使用新进程或线程。
c# - 如何在控制台应用程序中实现 MVP?
我在控制台应用程序的 Program.cs 中有以下代码
但我不能传递this
给演示者,因为 Main 方法是static
. 现在我怎么能做这个工作?
c# - 在控制台应用程序中显示多行文本?
我需要一种在控制台应用程序中显示多行文本(例如 1000 行)的方法,并且能够滚动浏览所有行。但是,当我执行以下代码片段之类的操作时,我只能在控制台中看到最后 100 行左右。
我最初的目的是显示几行(例如一次 100 行),并让用户点击以进一步浏览,但我希望有一种更简单、更用户友好的方式?
.net - 如何将“PAGE DOWN”写入控制台输入缓冲区?
我需要以编程方式将 Page Down 按键发送到控制台应用程序,但我迷路了。我在 MemoryStream 上使用 StreamReader 尝试了 Console.SetIn,然后写了 34(在 ConsoleKey 枚举中的 Page Down),但什么也没发生。
linux - 如何在linux中制作nano/pico之类的程序
我想知道如何制作一个可以输出到控制台每一行的程序,而不仅仅是输出一条要附加到底部的行。我怎样才能像这样控制整个控制台,以便编写基于控制台的应用程序?
delphi - 如何判断 Delphi 应用程序是否“拥有”其控制台?
Delphi 控制台应用程序可以从现有控制台窗口的命令行运行,并且可以通过双击其图标来运行。在后一种情况下,它将创建自己的控制台窗口,并在应用程序终止后关闭它。
如何判断我的控制台应用程序是否创建了自己的窗口?
我想检测到这一点,以便我可以显示一条消息,如“按 Enter 关闭窗口”,让用户在窗口关闭之前阅读显示的内容。显然,如果应用程序是从命令行运行的,那么这样做是不合适的。
我正在使用 Delphi 2010,以防万一。
ruby - 如何使用 Ruby 将文本输出着色到终端?
使用 Ruby,如何为终端中的输出执行背景和前景文本着色?
我记得,在编写 Pascal 时,我们都曾经编写自己的textcolor(…)
程序,以使我们的小型教育程序看起来更漂亮和更具表现力。
我将如何在 Ruby 中编写等价的代码?核心库中是否有任何内置支持可以做到这一点?如果没有,添加它的惯用方式是什么?
.net - 是否可以构建双击时不显示控制台窗口的控制台应用程序?
相关:
我应该在我的应用程序中包含命令行模式吗?
如何抓取父进程标准输出?
控制台应用程序是否可以检测它是否已从资源管理器运行?
我想构建一个控制台应用程序,通常从命令行运行。
但是,当从资源管理器中双击它(而不是从 cmd.exe 提示符运行)时,我希望程序不显示控制台窗口。
我想避免这种情况:
是否可以?
编辑我想另一种方法是,程序是否有可能知道它是如何被调用的——无论是通过双击还是通过命令行?
我在 Windows 上的 .NET 中工作。
编辑 2:从这篇Old New Thing博客文章中,我学到了一些好东西。以下是我现在所知道的...
在 Windows 中,EXE 文件被标记为 GUI 或非 GUI。对于 csc.exe,使用/target:winexe
或进行选择/target:exe
。在进程中的第一条指令执行之前,Windows 内核会设置执行环境。此时,如果 EXE 标记为 GUI,内核将进程的标准输入/标准输出设置为 NULL,如果非 GUI(命令行),内核创建一个控制台并将进程的标准输入/标准输出设置为安慰。
启动进程时,如果没有 stdin/stdout (== /target:winexe
),则调用立即返回。因此,从 cmd.exe 启动一个 gui 应用程序,您将立即返回您的 cmd 提示符。如果有标准输入/标准输出,并且如果从 cmd.exe 运行,则父 cmd.exe 等待进程退出。
“立即返回”很重要,因为如果您编写一个 GUI 应用程序以附加到其父控制台,您将能够执行 console.writeline 等。但是 cmd.exe 提示符是活动的。用户可以键入新命令、启动新进程等。换句话说,从一个winexe,简单地附加到父控制台AttachConsole(-1)
不会“把它变成”一个控制台应用程序。
在这一点上,我认为允许应用程序在从 cmd.exe 调用时使用控制台并且在双击时不使用它的唯一方法是将 exe 定义为常规控制台 exe ( /target:exe
),并且如果合适,在启动时隐藏窗口。您仍然会短暂出现一个控制台窗口。
我仍然不知道如何知道它是从资源管理器还是从 cmd.exe 启动的,但我越来越接近了..
答案
无法构建不显示控制台窗口的控制台应用程序。
可以构建一个非常快速地隐藏其窗口的控制台应用程序,但不会太快以至于好像窗口从未出现过一样。
现在,要确定控制台应用程序是否从资源管理器启动,一些人建议查看它正在运行的控制台
(来自mgb 的回答和知识库文章 99115):
这会告诉您该进程是否在其自己的控制台中启动,而不是它是否是资源管理器。在资源管理器中双击可以做到这一点,但应用程序中的 Start.Process() 也会做同样的事情。
如果您想以不同的方式处理这些情况,请使用它来了解父进程的名称:
要在进程启动后快速隐藏窗口,请使用以下命令:
如果您生成一个winexe
(WinForms 应用程序),并在适当的时候选择附加到父控制台AttachConsole(-1)
,则您不会获得与常规控制台应用程序等效的功能。对于 winexe,父进程(如 cmd.exe)将在启动 GUI 应用程序后立即返回命令提示符。换句话说,命令提示符处于活动状态并准备好输入,而刚刚启动的进程可能正在发出输出。这很令人困惑,可能仅对调试 winforms 应用程序有用。
这对我有用。