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