C# Перемещение исполняемого файла внутри панели - PullRequest
0 голосов
/ 16 апреля 2020

Итак, я прикрепил игру к своему проекту с помощью следующего кода:

int pidint = Convert.ToInt32(PID2.Text);
Process p = Process.GetProcessById(pidint);
Thread.Sleep(1000);
p.WaitForInputIdle();
SetParent(p.MainWindowHandle, Game2Panel.Handle);

Она работает просто отлично, однако мне не нужен весь экран. Небольшая часть (точнее, панель состояния).

Я пытался переместить приложение, прикрепленное к моему проекту, чтобы на панели (которая соответствует размеру панели состояния) отображалось только бар здоровья. Однако это просто перемещает мой проект в целом.

private void button3_Click(object sender, EventArgs e)
    {
        IntPtr hWnd = this.Handle;
        UInt32 pidint = Convert.ToUInt32(PID2.Text, 16);
        uint processid = pidint;
        uint threadid = GetWindowThreadProcessId((IntPtr)hWnd, out processid);
        if (hWnd == IntPtr.Zero)
        {
            MessageBox.Show("Could not find this process.");
            return;
        }

        // Set the window's position.
        int width = int.Parse(txtWidth.Text);
        int height = int.Parse(txtHeight.Text);
        int x = int.Parse(txtX.Text);
        int y = int.Parse(txtY.Text);
        SetWindowPos(hWnd, IntPtr.Zero, x, y, width, height, 0);
    }

Я также пытался перемещать Panel через Game2Panel.Left & Game2Panel.Top, но, очевидно, он просто перемещает Panel вокруг формы, а не ее содержимого. .

...