0

我最近尝试处理一个旧项目,但我无法让 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);
    }

它是用一个按钮调用的,当它试图设置父级时它会出错。我可以在网上找到的所有内容都表明我的代码是正确的。

4

1 回答 1

2

下面的代码在我这边运行良好(请检查您的 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);
    }

结果:

在此处输入图像描述

希望有帮助:)

于 2016-06-30T05:05:35.937 回答