我正在构建一个基于C++(Qt)的应用程序来控制基于Flash的用户界面。由于Flash运行时会泄漏大量的内存,因此我们将UI作为独立Flash Player中加载的.swf执行,与用C++编写的命令与控制应用程序分开。在另一窗口中捕获窗口输出
C++使用适当的参数将Flash播放器作为外部进程启动,并通过连接到本地主机的TCP套接字与它进行通信。
该应用程序主要运行在Windows XP及更高版本上。
独立运行Flash播放器的不幸副作用是两个应用程序显示在Alt +选项卡列表以及窗口上的任务栏(一个是我们的应用程序,另一个是Flash播放器)。此外,由于应用程序全屏运行,Flash必须管理整个屏幕。允许C++应用程序绘制屏幕的一部分将是一个巨大的改进。
我们想以某种方式合并这两个,同时让我们自己的应用程序控制。我正在考虑一些Google Chrome浏览器,这些浏览器似乎在单独的进程中运行每个浏览器选项卡,同时在单个窗口中显示所有输出。
我一直在阅读Win32 API(和谷歌),以确定是否完成这是甚至可能的。 Althogh到目前为止我已经想出了dll注入作为唯一的半可行的解决方案,但我非常想考虑计划B.
任何建议,将不胜感激。
非常感谢您的回答。 你的第一个建议看起来微不足道,它实际上归结为调用FindWindow()和SetWindowLongPtr()。到现在为止还挺好。 但是,您的第三个建议似乎是最有效的,尤其是与http://qt.nokia.com/doc/solutions/4/qtwinmigrate/winmigrate-win32-in-qt-example.html 一起使用时,我可以似乎不知道如何重新装修。我只能找到设置父窗口的参考,它位于CreateWindow()文档中。 你能否为我提供一个开始的地方? – 2009-12-29 20:10:06
'SetParent()':http://msdn.microsoft.com/en-us/library/ms633541(VS.85).aspx – 2009-12-30 16:31:28