C# winfrom项目,怎么样实现通过WINAPI 关闭对象的句柄窗口后,还能再次获取该句柄窗口

C# winfrom项目,怎么样实现通过WINAPI 关闭对象的句柄窗口后,还能再次获取该句柄窗口

问题描述:

在C# Winfrom项目中,from窗体中,有一个Panel控件。
目前已经实现将对象的窗口通过winAPI获取到句柄窗口放到了Panel控件中。
请问怎么样实现关闭from窗体后,下次再进入from窗体后,还通过winAPI获取到句柄窗口放到了Panel控件中。
关闭from窗体的事情需要怎么样写,才能实现通过winAPI获取到句柄窗口放到了Panel控件中。

附上代码(通过winAPI获取到句柄窗口放到了Panel控件中):
private void Form2_Load(object sender, EventArgs e)
{
ptrskypeWnd = API.FindWindow("CBoxMainFrame", null);

        API.SetWindowPos(ptrskypeWnd, new IntPtr(-2), 0, 0, Global.Globals.Object_WIDTH, Global.Globals.Object_HEIGHT, 0x0002);

        System.Threading.Thread.Sleep(500);

        MyInvoke mi = new MyInvoke(SetPanel);

        BeginInvoke(mi, new object[] { ptrskypeWnd });  
    }

    /// <summary>
    /// 将嵌入Panel控件
    /// </summary>
    public void SetPanel(IntPtr ptrskypeWnd)
    {

        //label1.Text += str + System.Environment.NewLine;
        API.SetParent(ptrskypeWnd, this.panel1.Handle);

        API.ShowWindow(ptrskypeWnd, WindowsApi.API.SW_MAXIMIZE);
    }

再Closing()事件中通过SetParent()把ptrskypeWnd还原到桌面窗口上(类名#32769),避免该窗口被连带关闭。
下次Load()事件中就能原样操作了。

     IntPtr ptrDocmentWnd = API.FindWindow("#32769", null);
        API.SetParent(ptrWnd, ptrDocmentWnd);

                    ptrDocmentWnd一直为零,找不到桌面窗口句柄。是不是那有误呀,帮忙看看?