Windows 7 任务栏卡在隐藏状态,如何修复?

Windows 7 任务栏卡在隐藏状态,如何修复?

在 Windows 7 中,我使用“自动隐藏任务栏”功能。通常情况下,它工作正常:只要指针触及屏幕底部,任务栏就会弹出。

但有时,它拒绝升起。按下“Windows”键(或 Ctrl-ESC)可显示开始菜单,从而强制任务栏也停止隐藏。一旦我这样做,任务栏就会再次自动升起。这很烦人,它会中断流程。有其他人注意到这一点吗?我该如何避免这种情况?

搜索“Windows 7 任务栏自动提升”显示至少有一个人遇到过此问题: 如何修复任务栏的自动隐藏?(微软社区帖子)

为了回答上述页面上“乐于助人”的支持工程师提出的问题,当然,当这种情况发生时,我正在运行一些应用程序,通常是 Windows 任务管理器(最小化到通知区域)、Windows 资源管理器、Firefox、Eclipse、Cygwin/X、Xterm、Cygwin Emacs、gitk、git gui、Notes、聊天客户端、VPN 客户端、防火墙。

如果我没记错的话,我也在早期版本的 Windows 上看到过这种行为,至少是 XP,但远不如现在的 Windows 7 上那么频繁。

到目前为止,这种现象似乎是突然发生的,有时一天会发生好几次。

到目前为止,我无法直接重现此行为。为了重现此行为,我尝试在应用程序之间切换,并让应用程序打开其他窗口。

请参阅下面的评论以了解更多信息。

我觉得这像是 bug。无论如何任务栏都应该升高。

编辑

我通常使用“经典”Windows 风格,禁用所有动画。我切换到“糖果”(Aero)风格,看看是否有帮助,但问题仍然存在。

我很确定当我没有使用 Eclipse 时我看到过这种行为,但 Eclipse 绝对是最常触发这种行为的程序。

据玛拉基所报道,Eclipse Bug 记录也跟踪了这个问题。它于 2002-09 年开启。哇,十多年前了。但是,Malachi 发现的另一个页面上的用户报告说,其他程序(例如 Firefox)也会导致此行为,因此这不是 Eclipse 独有的问题。

问题可能是由 Eclipse、Windows 或 JRE 引起的。如果问题是由 Windows 或 JRE 限制引起的,我仍然认为 Eclipse 应该不会遇到这个问题。其他程序也会出现这种情况。

我目前的理论是这样的:正常情况下,任务栏只有一行像素可见,并且位于所有其他应用程序的前面,即使应用程序最大化也是如此。由于任务栏位于前面(在 Z 顺序的顶部),因此当指针悬停在它上面时,它会“看到”指针。当问题发生时,任务栏不再位于其他每个应用程序的前面,因此它不会收到“悬停”事件。只有在没有其他窗口遮挡它的情况下,它才会仍然收到悬停事件。

如果任务栏需要位于顶部,并且至少有一行像素可见,则 Windows 有责任确保这种情况是真的。操作系统是主宰者,不能让应用程序主导 GUI 交互。也有例外,例如电影播放器​​,您不希望看到一行像素(只需将其涂成黑色即可!),或者任务栏根本不应该上升,例如在全屏游戏中。在我看来,Eclipse 或浏览器不需要例外。

以下是典型事件的描述:

Eclipse 在最前面。我将指针移到屏幕底部,任务栏不会升起。当 Eclipse 没有最大化时,在右侧留出一点空间,我能够让任务栏升起在后面通过“触摸”右下角,我打开了 Eclipse 窗口。移开后,任务栏又隐藏了起来。这个方法反复起作用。当我触摸底部中央时,任务栏没有升起,甚至没有在 Eclipse 后面升起。接下来,我最大化了 Eclipse 窗口。任务栏无法升起。恢复 Eclipse 窗口 -> 与最大化-恢复循环之前相同(只有触摸右下角时才会升起)。然后我按 Alt-Tab 切换到当时已最大化的 Firefox。仍然没有任务栏。在 Firefox 的非最大化状态下,它与 Eclipse 一样。其他应用程序也是如此,例如 Notes。接下来,我按 Alt-Tab 切换到 Emacs,准确地说是它的 Ediff 控制窗口。突然间,任务栏又正常工作了。Ediff 控制窗口没有最大化,也没有触摸屏幕底部(通常从不最大化)。Ediff 窗口不可能是罪魁祸首,因为这个问题大多发生在我没有打开 Ediff 窗口,它整天都在那里,任务栏正常工作的时候。

因此,当这种情况发生时,它会“应用”到多个应用程序。至少 Eclipse 和 Firefox 比任务栏“更强大”。在一个实例中,Eclipse 位于顶部,gitk 位于底部,任务栏位于中间。

也许有一个程序可以检查 Z 顺序,或者记录 Z 顺序的变化?

答案1

这让我抓狂,所以我决定深入挖掘这个问题的根源,并发誓无论如何都要找到根本原因。我甚至对 Windows 二进制文件进行了逆向工程。

我发现了一个非常微妙的 Windows 错误,在非常特殊的情况下,Windows 会误以为您正在使用全屏应用程序(即使您没有),并因此隐藏任务栏。该错误涉及竞争条件,本质上是不确定的,这就是为什么它很难重现的原因。

我能够重现、描述和找出问题的根本原因,并且还想出了一个解决方法:粗鲁的窗口修复者。您将在那里找到所有详细的技术细节。

特别是,如果你禁用了 GeForce Experience 覆盖,那么我很高兴地通知你,使用 RudeWindowFixer 你可以让它保持启用状态仍然可以摆脱这个问题。

虽然该解决方法确实可以消除这个特定的错误,但如果相关代码路径中存在需要单独修复的类似 Windows 错误,我也不会感到惊讶,所以我并不一定声称它能 100% 解决问题。如果您在使用 RudeWindowFixer 时遇到此问题,请告诉我我们可以一起尝试解决。无论好坏,我都变得非常善于调查这些代码路径……

我还提交了Windows 反馈报告关于这一点,我鼓励您投票以引起微软的注意!

答案2

使用WindowsT组合键,即使任务栏处于隐藏状态,您也可以调出它。这不是最理想的解决方案,但却始终有效。

答案3

看起来这已经是一个已报告的错误,我之所以为您发布此错误,是因为它看起来与您遇到的问题类似。

这是来自 Eclipse 错误站点 错误 24052

看起来 Windows 7 论坛上也有一篇帖子

任务栏自动隐藏

答案4

我有同样的问题,并且我设法发现,使用 Firefox 常规版本(我得到了开发人员),出现的层位于任务栏的前面,因此无法出现......解决方案很明显,不要最大化。

相关内容