【发布时间】:2021-10-22 22:34:25
【问题描述】:
在 Windows 10 中,可以通过按 F11 或 Alt+Enter 将控制台应用程序切换到全屏模式。请注意,这不是 Windows Vista 之前支持的您祖父的纯文本 VGA 全屏模式。虽然在此模式下没有可见的任务栏或标题栏,但其他窗口(或开始菜单)可以在它上面弹出,它是 Windows GUI 的一部分。
我有一个在 Windows 10 上运行的 .NET Core / C# 控制台应用程序。当我需要将其切换到全屏模式时,我使用 P/Invoke 将 F11 击键发送到我的将其置于前台后自己的窗口。显然,如果应用程序之前已经手动切换到全屏模式,它不会做我想要的,但我可以尝试通过对窗口大小进行一些计算来检测它来解决它。
我正在寻找一种不那么迂回的方法来做到这一点。我想知道:
- 如何从控制台应用检查当前是否处于全屏模式?
- 如何将我的控制台应用程序切换为全屏模式?
【问题讨论】:
-
你的应用怎么样?我的意思是,如果您从命令行运行像
dotnet your_app.dll这样的应用程序,那么 alt+enter 可以在 Windows 10 中运行,只需检查一下。你需要不同的东西吗? -
由于这是Windows特有的,您需要使用WINAPI函数。您可以在此处找到 Console Api 功能:docs.microsoft.com/en-us/windows/console/getconsoledisplaymode
-
@iakobski 谢谢,我可以使用此功能检查控制台窗口的当前模式。但是,显然,它的对应
SetConsoleDisplayMode不受支持,并且对 Windows 10 没有影响。 -
有一个 Github repo 专门用于新的控制台功能,这可能是询问是否以编程方式支持此功能的正确论坛,如果没有,则发出功能请求(#288 跟踪该选项要在启动时执行此操作,以编程方式按需执行似乎没有问题)。
-
@VladimirReshetnikov 可以请你分享你的代码吗?
标签: c# .net-core windows-10 console-application fullscreen