Chciał bym otworzyć moją formę w innym programie:
user image

tutaj jest sposób w jaki to aktualnie robię:

public partial class GuestForm: Form
{
  [DllImport("user32.dll")]
  public static extern int SetWindowLong(IntPtr hWnd, int nIndex, int dwNewLong);

  [DllImport("user32.dll")]
  public static extern int GetWindowLong(IntPtr hWnd, int nIndex);

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

  public static int GWL_STYLE = -16;
  public static int WS_CHILD = 0x40000000; 

  public GuestForm()
  {
    InitializeComponent();
  }

  private void button1_Click(object sender, EventArgs e)
  {
    Process hostProcess = Process.GetProcessesByName("notepad").FirstOrDefault();
    if (hostProcess != null)
    {
      Hide();
      FormBorderStyle = FormBorderStyle.None;
      SetBounds(0, 0, 0, 0, BoundsSpecified.Location);

      IntPtr hostHandle = hostProcess.MainWindowHandle;
      IntPtr guestHandle = this.Handle;
      SetWindowLong(guestHandle, GWL_STYLE, GetWindowLong(guestHandle, GWL_STYLE) | WS_CHILD);
      SetParent(guestHandle, hostHandle);

      Show();
    }
  }
}

Działa on na win xp 32bit ale na win7 64 już nie, forma która znajduje się w oknie mruga po najechaniu na nią i to nie zawsze, próbowałem znaleźć sposób na to ale nic nie mogłem zrobić :/

Chciał bym się dowiedzieć czy dało by się coś zrobić aby ta forma była zawsze na wierzchu w tym oknie?