我想创建 WPF 应用程序并在其上打开其他程序。例如记事本或上面的一些播放器。它类似于虚拟桌面,但仅用于在其上打开其他应用程序。这对.NET 可行吗?如何检测其他程序(附加程序)?如何定义并附加到 wpf 窗口?WPF是否比Win更好。为此的表格?或者可能是像 Qt 这样的其他技术?
问问题
109 次
2 回答
1
这种事情通常被称为“吞下一个窗口”,并且在某些窗口管理器(如 XTerm)上是可能的。但是,我不相信在 Windows 上不制作一个全新的窗口管理器是不可能的,这是一项艰巨的任务。
当然,一些应用程序通过 ActiveX 或 OLE 等嵌入技术公开其 GUI——这就是 Excel 文档可以嵌入到 Word 文档中的方式,例如。但是,应用程序必须专门设计为支持这一点,而绝大多数不支持。
于 2013-07-26T21:11:11.933 回答
1
三个步骤:
使用 Process 类获取要嵌套在 WPF 窗口中的应用程序的进程。
使用 WindowInteropHelper 类获取 WPF 窗口的句柄。
调用 Win32 函数 SetParent 以传递进程的 MainWindowHandle 属性和 WPF 窗口的 Handle 属性。
您需要使用 user32.dll ...
于 2013-07-26T23:55:01.277 回答