Rei*_*l-- 5 c# console-application execution
如果我Program.exe从现有的命令行窗口运行,那么当它完成并退出时,控制台输出仍然存在并且可见。
如果我双击 my Program.exe,那么它将打开一个新的命令行窗口,用于控制台输出...但是当我的 exe 完成时,该窗口将关闭,并带走输出。
在后一种情况下,为了防止输出日志丢失,我可能想要我的Main()be的最后两行Console.WriteLine("Press any key to exit"); Console.ReadKey();
但如果我在前一种情况下这样做,那就有点烦人了。
有什么方法可以检测这两种情况之间的差异,以便我可以有条件地“等待用户说我可以关闭”......仅在必要时?
如果您想检查您的应用程序是否从 .NET 中的命令行启动,您可以使用Console.GetCursorPosition(). 其工作原理是,当您从命令行启动它时,光标会从初始点 ( (0, 0)) 移开,因为您在终端中输入了某些内容(应用程序的名称)。您可以通过相等性检查来做到这一点:
// .NET 6
class Program
{
public static void Main(string[] args)
{
if (Console.GetCursorPosition() == (0, 0))
{
//something GUI
}
else
{
//something not GUI
}
}
}
Run Code Online (Sandbox Code Playgroud)
注意:您必须将输出类型设置为控制台应用程序,因为其他输出类型将引发Console.GetCursorPosition()异常。
| 归档时间: |
|
| 查看次数: |
2240 次 |
| 最近记录: |