如何将Process的第二个窗口移动到面板中?

时间:2015-10-28 09:04:56

标签: c# process

我试图将Windows窗体应用程序的输出放入另一个应用程序中的Panel(panel2)中。到目前为止,这是我的代码:

[DllImport("user32.dll")]
static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);
[DllImport("user32.dll")]
static extern int SetWindowLong(IntPtr hWnd, int nIndex, int dwNewLong);
[DllImport("user32.dll")]
static extern bool MoveWindow(IntPtr Handle, int x, int y, int w, int h, bool repaint);

pcproc = Process.Start(@"C:\\Program Files (x86)\Application\app.exe");
pcproc.WaitForInputIdle();
SetParent(pcproc.MainWindowHandle, panel2.Handle);
MoveWindow(pcproc.MainWindowHandle, panel2.Location.X, panel2.Location.Y, panel2.Width, panel2.Height,true);

现在不幸的是,应用程序启动了2个窗口(两个窗口都没有窗口标题,我不能更改它),其中第二个窗口已启动,是我想放在面板中的窗口。上面的代码只将第一个窗口放在面板中,这是我不想要的。那么如何将启动的第二个窗口移动到面板中呢?

0 个答案:

没有答案