答案1
否;Windows 有特殊处理所有控制台应用程序。与 Linux 程序不同,每个 Windows .exe 都有标题中有一点表明这是一个“控制台”还是“窗口”可执行文件。
此外,控制台窗口不是由 CMD 本身创建的。(在 Linux 术语中,CMD 是一个 shell/解释器;它不是终端。)相反,只要启动这样的进程,CSRSS 就会自动显示它们,尽管如今实际的 UI 已被拆分成康豪斯。确实有一个 CMD 和其他控制台应用程序使用的 API,但它有完整的文档记录并且是 Win32 API 的标准部分。
Windows 资源管理器(显示这些“属性”对话框的程序)可从此标题字段识别控制台应用程序并显示其他设置。(它甚至显示使用 NTVDM 的 16 位应用程序的更多设置。还记得 .pif 文件吗?)
每个新创建的控制台窗口都会拾取设置从 下HKEY_CURRENT_USER\Console
,其中有基于可执行文件名称或初始窗口标题的子项(子文件夹)。如果没有匹配的子项,它还将(通过某种未知机制)获取存储在快捷方式的 .lnk 文件中的设置,如您提供的屏幕截图所示。
也可以看看:
- 微软开发者博客:了解 Windows 控制台主机设置
- 旧事新做:如何编写一个可以作为控制台或 GUI 应用程序运行的程序?