Rai*_*ome 14 windows windows-7 taskbar
在 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 上那样频繁。
到目前为止,它似乎突然发生,有时一天发生多次。
到目前为止,我无法直接重现这种行为。为了重现这种行为,我尝试在应用程序之间切换,并让应用程序打开其他窗口。
有关更多信息,请参阅下面的评论。
对我来说看起来像一个错误。无论如何,任务栏都应该升高。
编辑:
我通常使用“经典”Windows 样式,禁用所有动画。我切换到“糖果”(航空)风格,看看是否有帮助,但问题仍然存在。
我很确定我在不使用 Eclipse 时看到过这种行为,但 Eclipse 绝对是最常触发这种行为的程序。
正如 Malachi 报道的那样,Eclipse Bugs 上有一个记录也跟踪了这个问题。它已于 2002-09 年开放。哇,十多年前了。但是,在 Malachi 发现的另一个页面上的用户报告说,其他程序,例如 Firefox,也可能导致此行为,因此这不是 Eclipse 独有的问题。
该问题可能是由 Eclipse、Windows 或 JRE 引起的。如果问题是 Windows 或 JRE 限制,我仍然说 Eclipse 应该远离它。其他程序也设法做到这一点。
我目前的理论是这样的:通常情况下,任务栏只有一行像素可见,并且在所有其他应用程序之前,即使应用程序被最大化。由于任务栏在前面(在 Z 顺序的顶部),当指针悬停在它上面时它“看到”了指针。出现问题时,任务栏不再位于所有其他应用程序的前面,因此它不会收到“悬停”事件。只有在没有其他窗口遮挡的情况下,它才会接收悬停事件。
如果任务栏需要位于顶部且至少有一行像素可见,则 Windows 有责任确保是这种情况。操作系统是主控,不能让应用程序主导 GUI 交互。也有一些例外,例如电影播放器,您不希望像素的细线可见(只需将其涂成黑色!),或者任务栏根本不应该升高,例如在全屏游戏中。在我看来,Eclipse 或浏览器不需要例外。
下面是一个典型事件的描述:
Eclipse 就在前面。我将指针移到屏幕底部,任务栏不会上升。Eclipse没有最大化时,在右边留一点空间,我可以让任务栏上升到后面日食窗口,通过“触摸”右下角。移开,任务栏又隐藏了起来。这反复奏效。当我触摸中心底部时,任务栏没有上升,甚至没有在 Eclipse 后面。接下来,我最大化了 Eclipse 窗口。无法升起任务栏。恢复 Eclipse 窗口 -> 与最大化 - 恢复循环之前相同(仅在触摸右下角时上升)。然后我用 alt-tab 键切换到当时最大化的 Firefox。还是没有任务栏。在非最大化状态下,Firefox 与 Eclipse 一样。其他应用程序也是如此,例如 Notes。接下来,我用 alt 选项卡切换到 Emacs,准确地说是它的 Ediff 控制窗口。突然任务栏又开始工作了。Ediff 控制窗口没有最大化,也没有触摸屏幕底部(通常从不最大化)。Ediff 窗口不可能是罪魁祸首,
因此,当发生这种情况时,它“适用”于多个应用程序。至少 Eclipse 和 Firefox 比任务栏“更强”。在一个例子中,Eclipse 位于顶部,gitk 位于底部,任务栏位于两者之间。
也许有一个程序可以检查 Z 顺序,或记录 Z 顺序中的更改?
这让我发疯,所以我决定深入挖掘这个问题的根源,并发誓无论如何都要找到根本原因。我甚至对 Windows 二进制文件进行了逆向工程。
\n我发现了一个特别微妙的 Windows 错误,在非常特定的条件下,Windows 错误地认为您正在使用全屏应用程序(即使您没有)并因此隐藏任务栏。该错误涉及本质上不确定的竞争条件,这就是为什么它很难重现。
\n我能够重现、描述问题并找出问题的根本原因,并且我还提出了一个解决方法:RudeWindowFixer。你会在那里找到所有血淋淋的技术细节。
\n特别是,如果您禁用了 GeForce Experience 叠加层,那么我很高兴地通知您,使用 RudeWindowFixer,您可以保持其启用状态,并且仍然可以解决该问题。
\n虽然该解决方法可靠地消除了这个特定的错误,但如果相关代码路径中存在类似的 Windows 错误需要单独修复,我也不会感到惊讶,因此我不一定声称它会 100% 消除该问题。如果即使安装了 RudeWindowFixer,您也遇到此问题,请告诉我,我们可以尝试一起解决这个问题。无论好坏,我在调查这些代码路径\xe2\x80\xa6方面变得非常高效
\n我还提交了一份有关此问题的Windows 反馈报告,我鼓励您投票以引起 Microsoft 的注意!
\n| 归档时间: |
|
| 查看次数: |
26616 次 |
| 最近记录: |