Windows 控制台应用在新控制台而不是同一控制台中打开

Windows console app opens in new console instead of the same console

本文关键字:控制台 应用 Windows      更新时间:2023-10-16

我确实有一个Windows控制台应用程序,用C++编写并使用控制台子系统进行编译,但是当从命令行启动时,它确实会打开一个新窗口,而不是重复使用相同的控制台窗口。

似乎原因是可执行文件有一个清单,需要管理员权限才能运行。

添加此功能是为了能够正确读取 HKLM 中的一些键。

如何解决这个问题?

您无需在应用程序清单中指定requestedExecutionLevel requireAdministrator,即可使其能够在没有虚拟化的情况下从 HKLM 读取。

您无需提升即可从 HKLM 阅读。只要您的进程具有指定requestedExecutionLevel的应用程序清单,它就不会被虚拟化。因此,结论是您需要指定asInvokerrequestedExecutionLevel

有关注册表虚拟化的详细信息,请参阅 MSDN 文档。