在WPF窗口.NET上添加应用程序窗口

时间:2013-07-26 20:56:35

标签: .net wpf desktop-application desktop

我想创建WPF应用并在其上打开其他程序。对于示例记事本或其上的一些播放器。它类似于虚拟桌面,但仅用于打开其他应用程序。 这是否适用于.NET? 如何检测其他程序(附加程序)? 如何定义和附加到wpf窗口? WPF比Win更好吗?形式为此? 或者可能是像Qt这样的其他技术?

2 个答案:

答案 0 :(得分:1)

这种事情通常被称为“吞噬窗口”,并且可以在像XTerm这样的窗口管理器上使用。但是,我不认为在没有制作全新的窗口管理器的情况下可以在Windows上实现,这是一项庞大的任务。

当然,有些应用程序通过嵌入ActiveX或OLE等技术来暴露其GUI - 例如,Excel文档可以嵌入到Word文档中。但是,应用程序必须专门设计为支持这一点,绝大多数都不支持。

答案 1 :(得分:1)

三个步骤:

  1. 使用Process类获取要在WPF窗口中嵌套的应用程序的过程。

  2. 使用WindowInteropHelper类获取WPF窗口的句柄。

  3. 调用Win32函数SetParent以传递Process的MainWindowHandle属性和WPF窗口的Handle属性。

  4. 你需要shell到user32.dll ...

相关问题