【发布时间】:2018-03-13 18:11:40
【问题描述】:
使用 C#/Visual Studio 2017 创建了一个控制台应用程序。当我从 VS 或 Windows 10 机器上运行控制台应用程序时,它使用我的控制台应用程序的默认设置(选项/字体/布局/颜色),这是完美的.但是,当我尝试在使用 Windows Server 2012 R2 的测试服务器上运行它时,它使用随机设置(小缓冲区大小/大字体/奇形窗口)。我试过了:
- 将服务器 (2012) 上的默认值设置为本地 (Windows 10/VS) 上的相同默认值
- 以编程方式设置控制台窗口的功能
- 从命令行运行
当我从命令行(program.exe)运行应用程序时,它使用默认设置。但是当我点击可执行文件时它没有。我在这里错过了什么?
【问题讨论】:
-
操作系统通过用户帐户和应用程序名称记住控制台设置。 Cmd.exe 和 yourapp.exe 不一样。您可以使用 Regedit.exe、HCKU/Console 键查看这些设置。 Superuser.com 是提问的好地方。
-
太棒了!没有意识到用户和应用程序控制台窗口位于不同的设置中。找到条目并设置应用程序的默认值。他们非常不同。谢谢!
-
它不是基于应用程序名称,而是基于初始控制台窗口标题。如果在调用
CreateProcess时没有通过STARTUPINFO设置窗口标题(例如使用CMD 的start命令时),则初始窗口标题为应用程序路径。此外,如果控制台应用程序通过 .lnk 快捷方式启动,设置将从快捷方式加载并保存到快捷方式而不是注册表。
标签: c# windows visual-studio-2017 console-application windows-server