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

时间:2017-03-24 21:55:32

标签: c++ windows winapi

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

如果不可能,我可以CreateProcess并将我的输入和输出附加到PowerShell实例吗?

1 个答案:

答案 0 :(得分:1)

PowerShell还使用"普通控制台窗口"因为只有一个控制台窗口类型。 Cmd.exe和PowerShell.exe并不特殊,它们只使用普通的Windows控制台API函数。

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

相关问题