在控制台 window 不闪烁的情况下启动 conhost.exe
Start conhost.exe without console window flashing
我正在使用 VS13(Windows 应用程序而非控制台应用程序)在 C# 中编写嵌入式 powershell 主机。我可以很好地调用 powershell 命令。我遇到的问题是,当调用函数处理 ping、netstat 等控制台命令时,它会触发创建 conhost.exe 的实例。根据我目前的研究,这是 Windows 7 及更高版本的正常行为,但是当 conhost 启动时,它会在屏幕上短暂地闪烁一个控制台。
有没有一种方法可以在不刷新控制台 window 的情况下启动 conhost?请记住,我正在处理用户对 powershell 管道的输入,因此对每个命令进行测试并启动新进程可能不切实际。
我已经有一段时间没问这个问题了,所以我想分享一下我的答案。基本上,由于我的嵌入式主机在一个仅在后台运行的应用程序中,因此无法阻止 conhost 在处理 "native commands" 时在屏幕上闪烁。这就是 Windows 的工作方式。如果我的主机连接到 GUI,那么我认为可能有一种方法可以重定向输出,但到目前为止,对于我的用例,我无法抑制 conhost。
我正在使用 VS13(Windows 应用程序而非控制台应用程序)在 C# 中编写嵌入式 powershell 主机。我可以很好地调用 powershell 命令。我遇到的问题是,当调用函数处理 ping、netstat 等控制台命令时,它会触发创建 conhost.exe 的实例。根据我目前的研究,这是 Windows 7 及更高版本的正常行为,但是当 conhost 启动时,它会在屏幕上短暂地闪烁一个控制台。
有没有一种方法可以在不刷新控制台 window 的情况下启动 conhost?请记住,我正在处理用户对 powershell 管道的输入,因此对每个命令进行测试并启动新进程可能不切实际。
我已经有一段时间没问这个问题了,所以我想分享一下我的答案。基本上,由于我的嵌入式主机在一个仅在后台运行的应用程序中,因此无法阻止 conhost 在处理 "native commands" 时在屏幕上闪烁。这就是 Windows 的工作方式。如果我的主机连接到 GUI,那么我认为可能有一种方法可以重定向输出,但到目前为止,对于我的用例,我无法抑制 conhost。