在QT表单上嵌入.exe应用程序

时间:2014-03-03 20:43:26

标签: c++ qt

我想知道是否有可能在QT表单上嵌入其他.exe应用程序。 说我有一个名为foo.exe的应用程序。现在我想通过我的应用程序来启动foo.exe。我知道我可以使用QProcess::startDetached()来做到这一点但是我希望该程序在我的表单中运行。那可能吗?

1 个答案:

答案 0 :(得分:1)

相信你想要的是一种“EMBED”,似乎已经完成了某些事情,但我可以通过以下几种方式指导你:

Cygwin的

X Window System中我们有“X-Embed”

对于Windows存在Cygwin/X(显然在“google chrome”中运行“多线程”使用cygwin)。

QT X11系统:http://qt-project.org/doc/qt-4.8/qvfb.html

很好的例子:http://arstechnica.com/information-technology/2009/03/experimental-process-per-tab-browser-created-with-qt-xembed/(过时)

的ActiveX

您可以创建Activex控件,请参阅示例:http://qt-project.org/doc/qt-4.8/activeqt-server.html


有两个建议你花了你想要添加到主程序的程序应该由你创建,换句话说,没有使用“Cygwin”编译或不是“ActiveX”的程序(你可以添加QT)控制ActiveX,例如Internet Explorer或MSExcel。)

相信两个示例程序都作为“服务器”工作,而它的主程序作为“客户端”,换句话说,其他进程不一定需要一个图形界面,我相信主要软件是谁工作GUI部分。

出于这个原因,程序应该“嵌入”创建,目的是“嵌入”


替代解决方案(DotNet和user32.dll)

见文章:

http://www.codeproject.com/Articles/9123/Hosting-EXE-Applications-in-a-WinForm-project