我已经开发了一个应用程序,该应用程序可以启动外部进程(例如记事本等),并在我的应用程序的面板内显示该进程的主窗口。 (如this线程中所述)
问题是我对此有很多关注点问题。例如。当一个窗口位于我的应用程序窗口上方并且我单击子进程的窗口时,主窗口不会进入前台。
我试图通过在子进程获得焦点时从主应用程序调用SetForegroundWindow来解决此问题,但是正如this和this线程所描述的,只有在调试或调试进程时,此方法才有效如果是前台进程。可以通过调用AttachThreadInput来解决此问题,但这不能100%可靠。
如果“该进程是由前台进程启动的”,则SetForegroundWindow也应该起作用,但是在我的情况下,这是相反的方法。 (前台进程由该进程启动)
如果聚焦窗口是我进程的子进程,是否有一种方法可以正确设置前景窗口?