1

我正在尝试使用 CreateProcess 从我的应用程序中启动一个 powershell 脚本。

我使用了 Microsoft 示例(http://msdn.microsoft.com/en-us/library/ms682499(VS.85).aspx)来创建子进程并重定向标准的 out/in/err 管道。

剩下要解决的唯一问题是为什么子进程(powershell)在执行命令后没有终止。

如果我执行 powershell 进程(使用命令) cmd.exe 它执行并退出,关闭进程。

现在关闭powershell进程的唯一方法是在句柄上运行TerminateProcess,但这感觉像是最后的手段。

4

2 回答 2

2

您的父母是否完全阅读了孩子的标准输出?如果您不阅读全部内容,那么我相信孩子会挂起。此外,如果脚本需要输入,您必须向孩子的标准输入写入一些内容,否则它将挂起。您可以将 windbg 附加到孩子身上,看看它挂在哪里;也许它会让你知道在哪里看。

于 2010-02-01T16:05:23.827 回答
0

在linux中,如果没有完全重定向输出并且父进程被杀死,子进程也会被杀死。因此,当父进程被杀死时,您可以查看有关重新排列子进程的 Windows 文档。

于 2010-02-01T16:18:29.577 回答