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

时间:2013-11-04 14:45:20

标签: c++ winapi visual-c++ console

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

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

这是为了能够正确阅读HKLM中的某些密钥而添加的。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

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

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

注册表虚拟化的详细信息可以在MSDN docs

中找到