C++ で記述され、コンソール サブシステムでコンパイルされた Windows コンソール アプリケーションがありますが、コマンド ラインから起動すると、同じコンソール ウィンドウを再利用する代わりに、新しいウィンドウが開きます。
実行に管理者権限が必要なマニフェストが実行可能ファイルに含まれていることが原因のようです。
これは、HKLM からいくつかのキーを適切に読み取れるようにするために追加されました。
どうすればこの問題を解決できますか?
C++ で記述され、コンソール サブシステムでコンパイルされた Windows コンソール アプリケーションがありますが、コマンド ラインから起動すると、同じコンソール ウィンドウを再利用する代わりに、新しいウィンドウが開きます。
実行に管理者権限が必要なマニフェストが実行可能ファイルに含まれていることが原因のようです。
これは、HKLM からいくつかのキーを適切に読み取れるようにするために追加されました。
どうすればこの問題を解決できますか?
仮想化なしで HKLM から読み取れるようにするために、アプリケーション マニフェストでrequestedExecutionLevel
ofを指定する必要はありません。requireAdministrator
HKLM から読み取るために昇格する必要はありません。また、プロセスに指定されたアプリケーション マニフェストがある限り、プロセスはrequestedExecutionLevel
仮想化されません。したがって、結論として、requestedExecutionLevel
ofを指定する必要がありますasInvoker
。
レジストリ仮想化の詳細については、MSDN ドキュメントを参照してください。