Force this C++ Programs to use Windows Console Host NOT default Windows Terminal

I have some programs that require MANY changes to use Windows Terminal mode of of console display. Is there a way to force my programs to use the OLD cmd.exe (Windows Console Host) mode of display not the NEW Windows Terminal. I know how to change the Windows 11 default back and froth. I want to leave the default to the NEW Windows Terminal. But force the old programs I'm working on start up displaying Windows console Host.
I'm using Windows 11 Home 22H2 Latest update and Visual Studio Community 2022 (64-bit) - Current
Version 17.5.4
I don't have Windows 11 so can't have Windows Terminal. However I understand it's just a host application for the command-line shells already available (eg Command Prompt, Powershell etc).

What are some of the issues as Windows Terminal as I understand it can open with at least one pane using standard Command Prompt.
Yeah, command-line applications, including cmd.exe and PowerShell, have no GUI at all. Simply put, they just read from stdin, and write to stdout or stderr. The terminal window is displayed by a separate process.

Traditionally, this was conhost.exe (Windows Console Host), but there now is the new shiny "Windows Terminal". This obviously replaces conhost.exe with OpenConsole.exe and WindowsTerminal.exe. There is one OpenConsole.exe process for each running command-line process (e.g. cmd.exe), and there is a single WindowsTerminal.exe that actually shows the UI and that may contain multiple tabs:

You can switch the terminal app in the system settings:

I don't see a way how this could be changed for a single program, but it seems you can start the "old" conhost.exe directly!

Try conhost.exe cmd.exe or conhost.exe powershell.exe:
Last edited on
Thanks I tried your way (conhost.exe cmd.exe) and it works calling cmd.exe from Windows Terminal, what I need is to be able to do is have the my program(s) start up using the old version. I need this to work when I'm debugging program or when a program is called from a batch file or one of my C++ programs calls another of my programs. I don't think it would work if my program just called (conhost.exe cmd.exe) because one program keeps up weather the other programs are running based on ID, can't use program name because there will be more than one group of my programs running at the same time working on different files. Remember I'm using Windows 11 Home 22H2 Latest update and Visual Studio Community 2022 (64-bit) - Current Version 17.5.4
Topic archived. No new replies allowed.