…显然,您不能相信流程为您提供的信息。
Process.MainWindowHandle返回应用程序创建的第一个窗口的窗口句柄,通常是该应用程序的主顶级窗口。但是,以我为例,对FindWindow()的调用显示我要还原的实际窗口的句柄不是MainWindowHandle指向的对象。在这种情况下,进程的窗口句柄似乎是程序加载主窗体时显示的初始屏幕的句柄。
如果我在FindWindow返回的句柄上调用ShowWindow,则它可以正常工作。
更为不寻常的是,当打开窗口时,给定进程的MainWindowHandle(在该窗口关闭时应该无效)时,对SetForegroundWindow()的调用可以正常工作。因此很明显,该句柄具有一定的有效性,只是在窗口最小化时没有。
总而言之,如果您陷入困境,请致电FindWindow,将外部应用程序主窗口的已知名称传递给它,以获取所需的句柄。



