Q:

c#, закрыть окно

Необходимо послать сигнал завершения окну. Именно сигнал завершения, убить процесс не пойдёт - их несколько, да и окон работает работает сразу 2-3, процессы не те закрываются.

A:

При условии, что у вас есть хэндл окна, которое вы пытаетесь закрыть, посылка WM_CLOSE сработает
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)]
static extern IntPtr SendMessage(IntPtr handle, UInt32 message, IntPtr w, IntPtr l);

static uint WM_CLOSE = 0x10;

public void CloseWindow(IntPtr handle)
{
    SendMessage(handle, WM_CLOSE, IntPtr.Zero, IntPtr.Zero);
}

