2010-05-12 87 views
0

与Windows XP安全更新KB978037可以使用Visual Studio 2005(和2008年)发生在哪里,有时,如果你重新启动一个控制台应用程序在调试会话,然后控制台中的已知的bug即使所有者进程不再存在,窗口也不会关闭。问题是进一步讨论在这里:销毁由Visual Studio调试会话离开过程少控制台窗口

Visual studio debug console sometimes stays open and is impossible to close

这些僵尸窗口则无法通过任务栏或通过任务管理器关闭,通常需要关闭/打开电源,以摆脱他们。甚至在一天的时间内,你可以积累相当多的数据,这会阻塞你的TaskBar,并且通常很烦人。

我以为我会敲一个简单的C++ Win32实用程序,尝试通过将窗口句柄作为cmd行参数传递并将其转换为HWND来在这些窗口上调用DestroyWindow()。

我通过将其解析为DWORD然后将DWORD转换为HWND来将字符串句柄转换。这似乎是工作,就像我调用成功的句柄上的GetWindowInfo()。然而,调用句柄上的DestroyWindow()失败,错误5(拒绝访问),大概是因为调用者进程(即我的应用程序)不拥有有问题的窗口。

有关我如何摆脱僵尸窗口的任何想法,无论是通过上述方法或任何其他短重新启动吗?我处于企业环境中,因此安装/卸载更新/服务包等不是一种选择。

回答