我有一台 Windows 7 64 位系统,过去几个月出现了一个奇怪的问题:计算机连续运行几天后,出现一个问题,即单击任务栏启动应用程序时无法启动这些应用程序的 GUI。失败的应用程序可能像记事本或计算器一样简单。因此,当我单击任务栏中的应用程序图标时,它们会突出显示但不会启动。如果我关闭其他正在运行的 GUI(例如 Outlook),它们会启动。据我所知,任务管理器确实显示了启动失败的应用程序的“进程”。
我不太了解 Windows GUI/窗口管理,但我猜想这与窗口的“堆栈”有关:除非关闭一些现有窗口,否则没有足够的空间显示新窗口?一旦我重新启动计算机,问题就会消失几天。
有什么想法吗?谢谢!
答案1
这听起来就像是“桌面堆”内存限制,这是 mIRC 流行时 Windows XP 时代的一个常见问题。
问题不在于您的内存不足,而在于有一定数量的内存专用于生成“桌面”对象,例如上下文菜单、窗口和其他图形生成的详细信息(我相信还有图标)。
通常这对于日常使用来说不是问题,但某些程序(例如 mIRC)以使用桌面堆内存池(而不是仅仅使用 RAM)的方式处理其自己生成的窗口。
我以为他们从 Windows XP 时代就修复了这个问题,或者至少将限制提高到有用的水平。但事实似乎并非如此,限制仍然小得可笑(我们说的是整个桌面堆在 3-20mb 之间,这并不多)。
我可以详细介绍如何修复它,但是既然您知道搜索“桌面堆”,您应该能够在短时间内找到问题/解决问题。(希望这是您遇到的问题,因为据我记得这是一个相对容易的修复)
编辑:问题很可能是您的程序确实使用了桌面堆,但在结束功能后没有正确关闭自己的窗口(因此,您有不可见的不可检测的窗口,从长远来看,这只会让您陷入困境),如果是这样,您应该能够通过谷歌搜索可能的嫌疑人来找到它。(我不相信桌面堆使用情况会显示在任务管理器中,但我从未深入研究过它)