如果您在控制台应用程序上重新启动debugging会话,则Visual Studio 2005(和2008)中会出现Windows XP安全更新KB978037的已知错误,即使所有者进程不再存在,控制台窗口也不会closures。 这个问题在这里进一步讨论:
Visual Studiodebugging控制台有时保持打开状态,无法closures
这些僵尸窗口,然后不能通过任务栏或通过TaskManagerclosures,并通常需要closures/打开电源摆脱它们。 甚至在一天的时间内,你可以积累相当多的,这阻塞了你的任务栏,一般都很烦人。
我以为我会敲一个简单的C ++ Win32实用程序,尝试通过将窗口句柄作为cmd行parameter passing并将其转换为HWND来在这些窗口上调用DestroyWindow()。
我通过将其parsing为DWORD,然后将DWORD转换为HWND来从string转换句柄。 这似乎是工作,就像我调用成功的句柄GetWindowInfo()。 然而,调用句柄上的DestroyWindow()失败,错误5(访问被拒绝),大概是因为调用者进程(即我的应用程序)不拥有有问题的窗口。
任何想法如何我可以摆脱僵尸窗口,无论是通过上述办法或任何其他短路重新启动? 我在公司环境中,所以安装/卸载更新/服务包等不是一个选项。
我知道这不是你想听到的,但摆脱这些窗口的唯一方法是通过重新启动计算机
显然,Windows团队正试图解决这个问题:
http://blogs.msdn.com/debugger/archive/2010/03/11/help-my-console-windows-won-t-go-away.aspx
但似乎并没有太多的事情发生
微软针对Windows XP和Windows 2003的热修复
在Windows 7上,Visual Studio 2010仍然存在此问题!
看到这个线程