Как перемещать другие приложения, но также не перекрывать их вместе

#c#

Вопрос:

Я понял, как перемещать окна, несколько из них, но у меня есть проблема, когда все они перекрывают друг друга, вот так: введите описание изображения здесьНо я хочу, чтобы это было так: введите описание изображения здесья также пытался создать один экземпляр блокнота, но не смог понять.

 using System;
using System.Diagnostics;
using System.Windows.Forms;

using WindowScrape.Types;

namespace test
{
    public partial class Form1 : Form
    {
        [System.Runtime.InteropServices.DllImport("user32.dll")]
        private static extern bool SetWindowPos(IntPtr hWnd, int hWndInsertAfter, int X, int Y, int cx, int cy, uint uFlags);

        private void Form1_Load(object sender, EventArgs e)
        {

            timer1.Start();
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            uint SWP_NOSIZE = 0x0001;

            foreach (Process process in Process.GetProcessesByName("notepad"))
            {
                var lol = HwndObject.GetWindowByTitle(process.MainWindowTitle);

                var x = lol.Location.X;
                var y = lol.Location.Y;

                SetWindowPos(process.MainWindowHandle, 0, x   rnd.Next(0, 1), y   rnd.Next(0, 1), 0, 0, SWP_NOSIZE);
            }
        }
    }
}
 

Комментарии:

1. Вы пробовали добавлять большие значения к X и Y — вы можете не заметить, что происходит, если просто переместить их на один пиксель

2. Нет, но всякий раз, когда я перемещаю окно блокнота, другие экземпляры блокнота следуют за тем, который я перемещаю. Поэтому я не думаю, что это связано с добавлением больших ценностей.