场合
标题可能令人困惑,但我正在开展一个项目,我需要在自己的程序中运行任何程序。关于此问题有一个主题Here。
问题
This解决方案正在使用win32 API并将程序附加到面板句柄。我做了一个调整,使其在WPF中工作,它不支持在控件上调用句柄。
这段代码将在我自己的程序中启动notepad.exe。我的想法是把它放在我的程序中。
[DllImport("user32.dll")] static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);
Process p = Process.Start("notepad.exe");
HwndSource source = (HwndSource)HwndSource.FromVisual(DockPanel);
SetParent(p.MainWindowHandle, source.Handle);
但是现在由于某种原因,我用上述方法打开的程序可以漂浮在我的程序的边界。相反,我只希望它能够停靠以填充孔码头面板。而不是摆脱它。
问题
我如何使用边界,以便在我的程序中打开的程序将完全停靠在我的停靠面板中,而不是移出它。如果没有使用停靠面板的方法,这不是问题。