Существует довольно простой способ сделать это.
Во-первых, вам нужно добавить панель в форму. Эта панель будет использоваться для «размещения» приложения.
Далее вам нужно пространство имен System.Runtime.InteropServices и System.Diagnostics для ваших пространств имен:
CSharp
using System.Diagnostics;
using System.Runtime.InteropServices;
Теперь нам нужно настроить наши функции WinAPI:
[DllImport("user32.dll")]
static extern IntPtr SetParent(IntPtr hwndChild, IntPtr hwndNewParent);
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)]
static extern IntPtr SendMessage(IntPtr hWnd, Int32 Msg, Int32 wParam, Int32 lParam);
Теперь внутри события нажатия кнопки запустите процесс и установите его родительский элемент для панели. В этом примере я буду использовать блокнот:
// Create a new process
Process proc;
// Start the process
proc = Process.Start("notepad.exe");
proc.WaitForInputIdle();
// Set the panel control as the application's parent
SetParent(proc.MainWindowHandle, this.panel1.Handle);
// Maximize application
SendMessage(proc.MainWindowHandle, 274, 61488, 0);