代码之家  ›  专栏  ›  技术社区  ›  SwiftLion

WPF在WPF窗口中打开exe程序

  •  6
  • SwiftLion  · 技术社区  · 16 年前

    不确定这是否可行,但是有没有办法在WPF窗口的容器中打开另一个程序,比如notepad?与使用webbrowser控件打开网页类似?

    3 回复  |  直到 16 年前
        1
  •  6
  •   Ray Burns    16 年前

    是的,这是可能的。

    你所要做的就是:

    1. 创建WindowsFormsHost并将其添加到UI中的面板
    2. 调用process.WaitForInputIdle
    3. 使用process.MainWindowHandle获取窗口句柄
    4. 钩住HwndHost和process.MainWindowHandle以检测大小更改,并重复步骤5。

    这一切都很简单。其效果是整个记事本窗口(或您启动的任何应用程序)的显示和行为完全就像它是您的WPF应用程序的一部分一样。

        2
  •  1
  •   dontbyteme    9 年前

    使用SetParent方法成功地做到了这一点

    [DllImport("user32.dll", SetLastError = true)]
    private static extern IntPtr SetParent(IntPtr hwc, IntPtr hwp);
    

    http://channel9.msdn.com/forums/TechOff/250417-Hide-window-caption-in-c/

        3
  •  -1
  •   Michael Madsen    16 年前

    你不能那样做。

    一般的前女友不会这样工作,你不能把他们嵌入你的应用程序中。