我想创建WPF应用并在其上打开其他程序。对于示例记事本或其上的一些播放器。它类似于虚拟桌面,但仅用于打开其他应用程序。 这是否适用于.NET? 如何检测其他程序(附加程序)? 如何定义和附加到wpf窗口? WPF比Win更好吗?形式为此? 或者可能是像Qt这样的其他技术?
答案 0 :(得分:1)
这种事情通常被称为“吞噬窗口”,并且可以在像XTerm这样的窗口管理器上使用。但是,我不认为在没有制作全新的窗口管理器的情况下可以在Windows上实现,这是一项庞大的任务。
当然,有些应用程序通过嵌入ActiveX或OLE等技术来暴露其GUI - 例如,Excel文档可以嵌入到Word文档中。但是,应用程序必须专门设计为支持这一点,绝大多数都不支持。
答案 1 :(得分:1)
三个步骤:
使用Process类获取要在WPF窗口中嵌套的应用程序的过程。
使用WindowInteropHelper类获取WPF窗口的句柄。
调用Win32函数SetParent以传递Process的MainWindowHandle属性和WPF窗口的Handle属性。
你需要shell到user32.dll ...