2

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

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

添加它是为了能够正确读取来自 HKLM 的某些密钥。

我怎么解决这个问题?

4

1 回答 1

3

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

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

可以在MSDN 文档中找到注册表虚拟化的详细信息。

于 2013-11-04T15:56:00.580 回答