我正在尝试使用CreateProcess从我的应用程序中启动powershell脚本。
我使用了Microsoft示例(http://msdn.microsoft.com/en-us/library/ms682499(VS.85).aspx)来创建子进程并重定向标准的out / in / err管道。
唯一需要解决的问题是为什么子进程(powershell)在执行命令后不会终止。
如果我执行powershell进程(使用命令)cmd.exe,则执行并退出,关闭进程。
现在关闭powershell流程的唯一方法是在句柄上运行TerminateProcess,但这感觉就像是最后的手段。
答案 0 :(得分:2)
您的父母是否完全阅读了孩子的标准输出?如果你没有全部阅读,我相信孩子会挂起。此外,如果脚本需要输入,则必须向子项的stdin写入内容,否则它将挂起。你可以给孩子附上一个windbg,看看它挂在哪里;也许它会让你知道在哪里看。
答案 1 :(得分:0)
在linux中如果没有完全重定向输出并且父进程被终止,子进程也会被杀死。因此,当父母被杀时,请检查windows文档,引用子进程的重新排列。