【发布时间】:2013-11-04 14:45:20
【问题描述】:
我确实有一个 Windows 控制台应用程序,用 C++ 编写并使用控制台子系统进行编译,但是当从命令行启动时,它会打开一个新窗口,而不是重复使用同一个控制台窗口。
似乎原因是可执行文件有一个需要管理员权限才能运行的清单。
添加此功能是为了能够正确读取 HKLM 的某些密钥。
我该如何解决这个问题?
【问题讨论】:
-
它是否有一个清单表明它必须以管理员身份运行?如果您从提升的命令提示符运行它,行为会改变吗?
-
如何从 bat 运行 exe?使用名称还是使用调用命令?
-
你是对的,这有清单以管理员身份运行。为了能够在没有虚拟化的情况下读取 HKLM,这是必需的。相同的可执行文件作为服务运行,但它也可以作为控制台应用程序运行。我确实必须读取 HKLM 的一些设置,甚至可能写(不确定)。没有这个,我很惊讶没有从 HKLM 读到任何东西。
-
启动控制台以管理员权限运行程序...
-
我已经这样做了,没关系,我什至可以接受它作为答案。除非有人还可以提供有关防止 Windows 虚拟化此应用程序的 HKLM 条目的解决方案,在这种情况下,我可以从清单中禁用 require Admin privs。谢谢。
标签: c++ winapi visual-c++ console