获得子进程的形式

时间:2013-08-08 10:17:19

标签: c# .net forms

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

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

1 个答案:

答案 0 :(得分:2)

如果您的应用已生成相关表单,则只能将表单检索为控件。您无法从其他进程检索表单,因为您的父进程不知道子进程的句柄< - >控件映射。

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

process.CloseMainWindow() vs process.kill()