这可能吗?我希望AllocConsole
(或一组函数调用的行为方式相同)来分配PowerShell窗口而不是普通的控制台窗口。
如果不可能,我可以CreateProcess
并将我的输入和输出附加到PowerShell实例吗?
答案 0 :(得分:1)
PowerShell还使用"普通控制台窗口"因为只有一个控制台窗口类型。 Cmd.exe和PowerShell.exe并不特殊,它们只使用普通的Windows控制台API函数。
如果你想控制stdin和stdout,你必须在调用STARTF_USESTDHANDLES
之前用CreatePipe
创建一些管道并设置STARTUPINFO
和CreateProcess
中的句柄。有关详细信息,请参阅this MSDN example。如果您还想显示输出,可以将stdout数据写入使用AllocConsole
创建的控制台窗口。请注意,当您重定向stdin / stdout时,交互式控制台功能将不再起作用。