启动进程后,C#获取窗口句柄

时间:2009-09-14 12:11:03

标签: c# window-handles

在使用Process.Start()从C#应用程序启动窗口后,有没有办法获取窗口句柄(IntPtr)?

4 个答案:

答案 0 :(得分:21)

如果它是您正在使用的主窗口,Process.MainWindowHandle将为您提供所需的内容。

答案 1 :(得分:6)

使用

process.MainWindowHandle;

启动应用程序时可能为0,因此您可能需要循环并休眠直到它被填满。

答案 2 :(得分:5)

这不是最近的主题,但答案不完整。

我同意Process.MainWindowHandle解决方案并等待值,但不是Sleep。

  

如果您刚刚启动了一个进程并希望使用其主窗口句柄,请考虑使用WaitForInputIdle方法来允许进程完成启动,确保已创建主窗口句柄。

Process.WaitForInputIdle

  

此重载仅适用于具有用户界面的进程,因此也适用于消息循环。

答案 3 :(得分:2)

您还可以在流程上调用Refresh()以确保信息准确无误