我已经使用窗口设置中的开发人员部分将默认控制台主机应用程序设置为Windows终端。但是,有时我想在其他主机(如cmd.exe或PowerShell)中运行我的控制台应用程序(目前使用c#和dotnet 7)。如何在代码中选择Windows上托管我的控制台应用程序的位置?是否有方法为不同的应用程序设置不同的主机?
我正在使用Windows 10版本21H2和Visual Studio 2022。
谢谢你的帮助。
我已经使用窗口设置中的开发人员部分将默认控制台主机应用程序设置为Windows终端。但是,有时我想在其他主机(如cmd.exe或PowerShell)中运行我的控制台应用程序(目前使用c#和dotnet 7)。如何在代码中选择Windows上托管我的控制台应用程序的位置?是否有方法为不同的应用程序设置不同的主机?
我正在使用Windows 10版本21H2和Visual Studio 2022。
谢谢你的帮助。
1条答案
按热度按时间juzqafwq1#
我不知道每个应用程序的配置机制,但您可以通过所需的终端应用程序调用程序,
conhost.exe
(对于旧式控制台窗口,通过控制台主机)或wt.exe
(Windows终端)。下面是一个使用
cmd.exe
示例命令的PowerShell示例(应该很容易适应C#):注意我们尝试通过
.RedirectStandardOut
和.RedirectStandardError
使用上述技术以编程方式捕获启动程序的输出:conhost.exe
,您在技术上可以**,但您将获得带有VT转义序列的前导码(表示为可扩展的PowerShell(核心)字符串):"
e[?25le[2J
e[me[H
e]0;C:\Windows\SYSTEM32\conhost.exea
e[?25h"`