“顯示桌面”有時會將視窗設定為“始終位於頂部”

“顯示桌面”有時會將視窗設定為“始終位於頂部”

不用擔心,不會出現另一個「我的顯示桌面按鈕消失了」的問題。

我在 Windows 7 下發現,當您使用“顯示桌面”功能(我更喜歡⊞ Win+D快捷方式),然後再次使用它來恢復所有視窗時,某些視窗的行為就像粘在 z- 的前面一樣命令。這意味著,比如說,我打開了視窗 AB 和 C,專注於 A,按⊞ Win+D兩次,現在可能會發生這樣的情況:如果我隨後想切換到 B 或 C,可以透過Alt+Tab或在任務欄,工作列顯示突出顯示,但A 在前台保持可見(並且可用,這不僅僅是渲染問題)。

想像以下情況,所有三個視窗層疊且重疊:

A(焦點)
B
C

-> ⊞ Win+D

桌面(焦點)

-> ⊞ Win+D

A(焦點)
B
C

-> 點選工作列上的 C

A
C(焦點)
B

-> 點選工作列上的 B

A
B(焦點)
C

等等。焦點表示實際輸入焦點,即在第二種情況下,任何鍵盤輸入都會傳送到視窗 B,而視窗 A 位於前台。

什麼樣的應用程式並不重要;在我目前的情況下,Outlook 實例和 Explorer 實例被卡住,而 Explorer 的第二個實例和 Firefox 實例運作正常。這應該表明,即使在同一應用程式的多個實例之間也可能出現此問題,並且不存在任何花哨的應用程式喜歡假裝它們是最重要的程式並在內部強制「始終位於頂部」。

再次顯示和取消顯示桌面沒有幫助;在最壞的情況下,另一個視窗也可能最終「黏在 z 順序的頂部」。在這些之間,我可以輕鬆切換,但為了獲得一個在頂部仍然正常運行的窗口,我必須手動最小化有問題的窗口。

到目前為止,唯一的治療方法似乎是關閉有問題的窗戶,我還沒有找到任何其他有幫助的方法。

難道Windows 7有一個bug可以強制總在最前面從“顯示桌面”恢復時標記到某些窗口,或者我做錯了什麼?

更多資訊:

⊞ Win+d在 Win7-64bit-Ultimate 上很容易複製問題。

受影響的視窗(任何程式)似乎被放置在一個單獨的“Z”組中。您可以將多個/許多視窗置於此始終在最上面的狀態,處於受影響狀態的視窗將彼此正常運行,但以下情況除外:

  • 該組作為一個整體始終位於任何不受影響的窗口的頂部
  • 整個群組都在任務欄前面。
  • 整個群組不回應(工作列上的上下文)「級聯視窗」或類似命令。

受影響的視窗位於工作列頂部並且充當「特殊視窗」的事實表明,Windows 7 必須具有與顯示桌面功能一起應用的始終在頂部的隱藏「功能」。該功能似乎將視窗置於工作列頂部的超級視窗狀態(正常群組保留在工作列後面)。當您單擊工作列的開始功能表或上下文功能表時,開始功能表/工作列將轉到始終位於最前面的組的前台,但這不會恢復受影響的窗口,只是暫時接管,直到您切換到其他視窗比開始功能表/工作列。

這是找到答案的關鍵。我們如何讓Windows取消分配特殊的超級狀態或先不進行分配?

其他用戶的更多資訊: 通過關閉所有視窗並重新啟動,它似乎已清除。最初我無法重現該錯誤,然後在打開所有工作視窗後,我確實在任何視窗上重現了該錯誤。

我幾乎認為它可能是與 Chrome 的多個視窗相關的東西初始化的,然後一旦一個視窗出現顯示桌面問題就會出現。這是因為:在使用 chrome 會話保護程式(會話夥伴)進行更多操作並恢復會話並獲得超級狀態後,我恢復並關閉了我所在的窗口,現在我再次處於無法重現的位置錯誤,即使在在我的「工作環境」中,兩個視窗中有大約35 個chrome 選項卡,加上其他程式、檔案位置、遠端桌面和帶有另外十幾個選項卡的第二個chrome 配置檔案。

那麼,回到正題,尋找超級國家現象的實際煽動者。

一旦您確實遇到了超級問題,就會重現以下內容:好的,我在鍵入時執行此操作:

打開chrome(查看此網站),然後打開記事本,然後打開計算器(可以是任何窗口,但出於演示目的,請跟我一起操作)

視窗應該正常工作,重疊窗口,以便您可以看到所有視窗的邊緣,Z 順序是(從前到後):瀏覽器在頂部,然後是計算器,然後是記事本(您應該能夠看到背景視窗的一部分)。

現在,將瀏覽器置於頂部,按 win+d,然後再次按 win+d。

點擊計算器,然後點擊瀏覽器,您的瀏覽器現在卡在前台。點擊記事本會將焦點帶到記事本,它將位於計算器前面,但它將保留在瀏覽器後面,因為您的瀏覽器處於「超級狀態」。 (從 win+d 返回後切換焦點的許多安排都會產生問題,除了單擊桌面之外,我還注意到我無法讓計算器進入超級狀態,除非它與我的 chrome 瀏覽器重疊)。

同樣,除非您的至少一個視窗受到影響,否則這似乎不起作用。

我們仍然不知道如何讓初始視窗進入 Superstate,只知道後續視窗。

答案1

最近遇到這個問題。不確定它是如何開始的,但我可以使用 ⊞ win + d 兩次並單擊不同的視窗將視窗置於“超級視窗”狀態。我本來打算嘗試使用 Ctrl + Shift + Esc 快捷方式開啟任務管理器,但點擊了 Ctrl + Alt + Esc,視窗回到正常狀態。我能夠使用每個視窗上的按鍵序列成功地將所有視窗返回正常狀態,並且 ⊞ win + d 不再將視窗置於“超級視窗”狀態。希望這可以幫助。

答案2

兩個解決方法:

我用的是win+D。問題很容易複製,Win7-64bit-Ultimate。

解決方法一 將所有視窗提升至超級狀態,以便它們彼此正常互動。這種解決方法的問題是,新視窗仍然會在所有超級狀態視窗後面打開,如果嘗試查找是否有許多視窗和/或許多顯示器,這可能會非常煩人。

解決方法二 另一種半解決方案是關閉該進程並重新開啟它。新視窗將處於正常狀態,但如果我使用,問題可能會再次出現Win+d,這可能會導致大量關閉並重新打開數十個視窗以避免該問題。

答案3

我使用“顯示桌面”作為滑鼠按鈕命令,並注意到您正在經歷相同的事情。有時,某些視窗在按下“顯示桌面”按鈕時獲得焦點,然後再次按下“顯示桌面”按鈕並執行相反命令後,將表現為“始終位於頂部”視窗。

我在 Internet Explorer、Windows Explorer 和 Outlook 中註意到了這一點。我運行的是 Windows 7 Ultimate x64。沒有解決辦法,只能為我關閉並重新打開視窗。

不過,我有興趣在沒有從系統托盤運行第三方軟體的情況下有意執行此命令。

編輯 2011 年 9 月 29 日

為了促進我原來的評論,我找到了這個問題的解決方案/解決方法 - 但這個解決方案是特定於我的系統的,因為我使用 UltraMon,你必須安裝該程式才能為你工作。此外,它必須是 UltraMon 版本 3.1.0 或更高版本。下載並安裝軟體後,前往http://www.realtimesoft.com/ultramon/scripts/並下載“Always on Top”腳本。它是執行此功能的 .vbs 檔案:

_Set wnd = CreateObject("UltraMon.Window")
If wnd.GetForegroundWindow() = True Then
    If wnd.AlwaysOnTop = True Then
        wnd.AlwaysOnTop = False
    Else
        wnd.AlwaysOnTop = True
    End If
    wnd.ApplyChanges 0
End If_

然後打開 UltraMon 選項並轉到熱鍵選項卡並選擇“運行應用程式或腳本”並單擊Add Hotkey。將開啟一個模式對話框,您應在其中輸入要使用的鍵盤提示(組合),定位到我們之前下載的腳本,然後按一下ok。現在您已經有了一個熱鍵組合,可以在啟用和停用 Always_on_Top 值之間切換。因此,當您在顯示桌面或撤銷顯示桌面時出現錯誤時,我們現在可以快速修復鍵盤。就像我上面評論的那樣,如果您希望故意將視窗強製到前面(這有時會很有幫助),您現在也可以選擇這樣做。

這對我有用,因為我始終保持 UltraMon 開啟。這是一個很棒的程序,但我的視訊卡已經涵蓋了許多功能,因此我正在考慮將其完全刪除,但現在它已確保將其放置在我的計算機上並具有此有價值的功能。

如果有人對上面的腳本有任何見解,以及它是否可以應用於活動視窗而不需要載入 Ultramon,請隨時為我的答案做出貢獻。謝謝。

答案4

我發現這是 Nvidia WMI Provider 的問題。我運行了兩個實例(一個是 32 位元版本)。我停止了 32 位元版本,問題就消失了。

相關內容