SetParent не работает InvalidOperationException

Я недавно пытался работать над старым проектом, который у меня был, я не могу заставить setparent работать, он продолжает выдавать ошибку "InvalidOperationException", вот код:

private void button1_Click(object sender, EventArgs e)
    {
        Process proc = Process.Start("calc.exe");
        proc.WaitForInputIdle();
        Thread.Sleep(500);
        SetParent(proc.MainWindowHandle, this.Handle);
    }

Он вызывается с помощью кнопки, и когда он пытается установить родителя, он выдает ошибку. Все, что я могу найти в Интернете, говорит о том, что мой код верен.

1 ответ

Этот код ниже работает нормально на моей стороне (пожалуйста, проверьте объявление вашей функции Windows API SetParent):

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

    private void button1_Click(object sender, EventArgs e)
    {
        Process proc = Process.Start("calc.exe");
        proc.WaitForInputIdle();
        Thread.Sleep(500);
        SetParent(proc.MainWindowHandle, this.Handle);
    }

Результат:

введите описание изображения здесь

Надеюсь, это поможет:)

Другие вопросы по тегам