Usando o SetWindowPos com vários monitores

Usinguser32.dll e C # escrevi o método que você vê abaixo. Usando uma alça de processo para uma janela, ela definirá a posição da janela em{x,y} localização.

No entanto, em um ambiente com vários monitores, o código abaixo define apenas a posição da janela para o monitor principal. Gostaria de poder selecionar também qual monitor.
Pode alguém explicar como isso pode ser feito usandoSetWindowPos ou talvez uma combinação com outrouser32.dll função?

[DllImport("user32.dll", SetLastError = true)]
static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int X, int Y, int cx, int cy, int uFlags);

private const int SWP_NOSIZE = 0x0001;
private const int SWP_NOZORDER = 0x0004;
private const int SWP_SHOWWINDOW = 0x0040;

public static void SetWindowPosition(Process p, int x, int y)
{
    IntPtr handle = p.MainWindowHandle;
    if (handle != IntPtr.Zero)
    {
        SetWindowPos(handle, IntPtr.Zero, x, y, 0, 0, SWP_NOZORDER | SWP_NOSIZE | SWP_SHOWWINDOW);
    }
}

Solução baseada no comentário de Jim

qui está a configuração do meu monitor:

Observe que eu tenho um monitor secundário à esquerda do meu monitor principal. Depois de ler o link do Virtual Monitor fornecido por Jimi, descobri que, para mover as janelas para o monitor secundário, devo usar um valor x negativo porque ele fica à esquerda da origem do monitor primário (canto superior esquerdo ou <0,0>).

Portanto, se eu quiser que minha posição da janela seja definida como a coordenada <0,0> do monitor secundário, devo subtrair a largura x do monitor secundário a partir da origem do monitor primário, assim:

<0,0> - <1920,0> = <-1920,0>

Agora, quando eu chamo SetWindowPosition no código do meu cliente, eu chamo assim:

SetWindowPosition(Process p, -1920, 0);

Nota: Não sei o que você faria se os monitores tivessem resoluções diferentes. Esse é um tópico mais complexo e não uma pergunta que estou fazendo. Além disso, não vi a necessidade de explorar mais profundamente o tópico, pois o exemplo simples acima resolveu todos os meus problema

questionAnswers(1)

yourAnswerToTheQuestion