我正在构建一个基于C++(Qt)的应用程序,用于控制基于Flash的UI。由于Flash运行时会泄漏大量内存,因此我们将UI作为.swf执行,并加载到独立的Flash播放器中,与用C++编写的命令和控制应用程序分开。
C++使用适当的参数将Flash Player作为外部进程启动,并通过连接到localhost的TCP套接字与其进行通信。
该应用程序主要在Windows XP及更高版本上运行。
独立运行Flash Player的不幸副作用是,Alt +选项卡列表以及Windows的任务栏中显示了两个应用程序(一个是我们的应用程序,另一个是Flash Player)。此外,由于应用程序以全屏模式运行,因此Flash必须管理整个屏幕。允许C++应用绘制屏幕的一部分将是一个巨大的进步。
我们希望以某种方式合并两者,同时将我们自己的应用程序置于控制之下。我在考虑Google Chrome的思路,它似乎在单独的进程中运行每个浏览器标签,同时在单个窗口中显示所有输出。
我一直在阅读Win32 API(和Google),以确定是否有可能做到这一点。到目前为止,我已经提出了将DLL注入(inject)作为唯一的半可行解决方案,但是我非常想考虑该计划B。
任何建议,将不胜感激。
最佳答案
Alt + Tab列表显示可见的顶级窗口(无父窗口),并且没有WS_EX_TOOLWINDOW
扩展样式。因此,如果您有两个进程中的两个窗口,但只想在Alt-Tab列表中(以及在任务栏上)看到一个窗口,那么您有几个选择: