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

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

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

使用

 process.MainWindowHandle; 

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

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

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

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

Process.WaitForInputIdle

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

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