我试图获取我启动的过程的主要形式,但FromChildHandle和FromHandle始终返回null。但是MainWindowHandle不为零。

IntPtr p = process_wrapper.MainWindowHandle;
Form form = (Form) Control.FromChildHandle(p);
if (form != null)
{
    form.Close();
}

最佳答案

如果有问题的表单是由您的应用程序生成的,则只能将表单作为控件进行检索。您不能从另一个进程中检索表单,因为您的父进程不知道子进程的句柄 Control映射。

如果只想“停止”子进程(form.close()?),则可以简单地停止整个过程。 “清洁”或强制执行:
process.CloseMainWindow()process.kill()

关于c# - 获取子进程的形式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18123442/

10-10 18:39
查看更多