C# Winform项目中关闭form窗体后无法再次利用WIN32 API获取第三方应用系统的窗口

sxl_88 2015-02-04 12:50:29
在C# Winform项目,from窗体中有一个Panel控件和一个Button控件。

目前已经能够利用WIN32 API 找到“监控系统”窗口的句柄,并将那个获取到的窗口“附加”到了Panel控件上。
并能够正常在Panel控件中显示“监控系统”。

请问下,怎么样实现form窗体关闭后,再次再点击Button控件能够再次获取到“监控系统”窗口的句柄并可以放在Panel控件中正常显示“监控系统”呢?
附上自己的代码,帮忙看看是不是下面代码写得有点问题,还是其它的问题。有没有相关的参考资料,谢谢!

----点击Button控件获取“监控系统”窗口的句柄显示到Panel控件上----
private void button1_Click(object sender, EventArgs e)
{
IntPtr ptrjkWnd = API.FindWindow("TabWindowClass", null); //查找监控系统的句柄
API.SetParent(ptrjkWnd, this.panel1.Handle);
API.ShowWindow(ptrjkWnd, WindowsApi.API.SW_MAXIMIZE);
}


---点击关闭form窗体------
private void Frmjk_FormClosed(object sender, FormClosedEventArgs e)
{
API.PostMessage(ptravayaWnd, API.WM_CLOSE, 0, 0);
API.PostMessage(ptravayaWnd, API.WM_QUIT, 0, 0);
System.Threading.Thread.Sleep(10);
Environment.Exit(Environment.ExitCode);
}


...全文
131 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
於黾 2015-02-04
  • 打赏
  • 举报
回复
API.PostMessage(ptravayaWnd, API.WM_CLOSE, 0, 0); API.PostMessage(ptravayaWnd, API.WM_QUIT, 0, 0); 晕死,你这不是把它关了吗
於黾 2015-02-04
  • 打赏
  • 举报
回复
关闭窗体前将它从panel里移除,否则有可能一起被关闭了

110,529

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧