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

Jam*_*add 5 c# window-handles

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

Nol*_*rin 21

如果它是您所追求的主窗口,Process.MainWindowHandle它将为您提供所需的一切.


Jan*_*oom 6

使用

process.MainWindowHandle;
Run Code Online (Sandbox Code Playgroud)

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


Sam*_*Sam 5

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

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

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

Process.WaitForInputIdle

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