启动进程后C#获取窗口句柄
有没有办法在使用Process.Start()从C#应用程序启动窗口后获取窗口句柄(IntPtr)?
如果它是您正在使用的主窗口, Process.MainWindowHandle
将为您提供所需的内容。
使用
process.MainWindowHandle;
启动应用程序时可能为0,因此您可能需要循环并hibernate直到它被填满。
这不是最近的主题,但答案是不完整的。
我同意Process.MainWindowHandle解决方案并等待值,但不是Sleep。
如果您刚刚启动了一个进程并想要使用其主窗口句柄,请考虑使用WaitForInputIdle方法来允许进程完成启动,确保已创建主窗口句柄。
Process.WaitForInputIdle
此重载仅适用于具有用户界面的进程,因此也适用于消息循环。
您还可以在流程上调用Refresh()以确保信息准确无误