我正在构建一个基于 C++ (Qt) 的应用程序来控制基于 Flash 的 UI。由于 Flash 运行时会泄漏大量内存,因此我们将 UI 作为加载在独立 Flash 播放器中的 .swf 文件执行,与使用 C++ 编写的命令和控制应用程序分开。
C++ 将 Flash 播放器作为具有适当参数的外部进程启动,并通过连接到 localhost 的 TCP 套接字与其通信。
该应用程序主要在 Windows XP 及更高版本上运行。
单独运行 flash player 的不幸副作用是两个应用程序显示在 Alt+tab 列表以及 Windows 的任务栏中(一个是我们的应用程序,另一个是 flash 播放器)。此外,当应用程序全屏运行时,flash 必须管理整个屏幕。允许 C++ 应用程序绘制屏幕的一部分将是一个巨大的改进。
我们想以某种方式合并两者,同时让我们自己的应用程序处于控制之中。我在想一些类似于 Google Chrome 的东西,它似乎在一个单独的进程中运行每个浏览器选项卡,同时在一个窗口中显示所有输出。
我一直在阅读 Win32 API(和谷歌),以确定是否有可能实现这一点。到目前为止,我已经提出了 dll 注入作为唯一半可行的解决方案,但我非常想考虑那个计划 B。
任何建议,将不胜感激。