7

我正在尝试获取我开始的进程的主要形式,但 FromChildHandle 和 FromHandle 始终返回 null。然而 MainWindowHandle 是非零的。

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

1 回答 1

2

如果相关表单已由您的应用程序生成,您只能将表单作为控件检索。您无法从另一个进程中检索表单,因为您的父进程不知道子进程的句柄 <-> 控制映射。

如果您只想“停止”子进程(form.close()?)您可以简单地停止整个进程。要么“干净”,要么强制:

process.CloseMainWindow()对比process.kill()

于 2013-08-08T10:31:54.817 回答