我正在構建一個基於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