使用 PowerShell 作为控制台,就像它是使用 AllocConsole 创建的一样

Use PowerShell as a console, as if it was created with AllocConsole

本文关键字:创建 AllocConsole 一样 PowerShell 控制台 使用      更新时间:2023-10-16

这可能吗?我希望AllocConsole(或一组行为相同的函数调用(分配PowerShell窗口而不是普通控制台窗口。

如果无法实现,是否可以CreateProcess输入和输出并将其附加到 PowerShell 实例?

PowerShell 还使用"普通控制台窗口",因为只有一种控制台窗口类型。Cmd.exe和PowerShell.exe并不特殊,它们只是使用正常的Windows控制台API功能。

如果要控制 stdin 和 stdout,则必须创建一些带有 CreatePipe 的管道,并在调用 CreateProcess 之前STARTUPINFO 中设置STARTF_USESTDHANDLES和句柄。有关详细信息,请参阅此 MSDN 示例。如果还希望显示输出,则可以将 stdout 数据写入使用 AllocConsole 创建的控制台窗口。请注意,当您重定向 stdin/stdout 时,交互式控制台功能不再工作。