web-dev-qa-db-ja.com

「デスクトップの表示」で、ウィンドウが「常に手前」に設定されることがある

心配する必要はありません。別の「デスクトップのボタンを表示する」という質問はありません。

Windows 7で「デスクトップの表示」機能を使用したときに見つけたもの(私は ⊞ WinD ショートカット)を使用して、すべてのウィンドウを再び使用すると、一部のウィンドウはzオーダーの前面に接着されているように動作します。これが意味することは、たとえば、ウィンドウA BとCを開いて、Aに焦点を当てて、 ⊞ WinD 二回、そして今私がその後BまたはCに切り替える場合、 Alt+Tab または、タスクバーでそれらを選択すると、タスクバーにハイライトが表示されますが、Aはフォアグラウンドで表示されたままです(そして使用可能であり、単なるレンダリングの問題ではありません)。

次の状況を想像してみてください。3つのウィンドウすべてが重ねて重なり合っています。

A (focus)
B
C

-> ⊞ WinD

デスクトップ(フォーカス)

-> ⊞ WinD

A (focus)
B
C

->タスクバーのCをクリックします


C(フォーカス)
B

->タスクバーのBをクリックします


B(フォーカス)
C

等々。フォーカスとは、実際の入力フォーカスを意味します。つまり、2番目の状況では、ウィンドウAがフォアグラウンドにある間にキーボード入力がウィンドウBに送信されます。

どのようなアプリケーションでもかまいません。私の現在のケースでは、OutlookのインスタンスとExplorerのインスタンスがスタックしていますが、Explorerの2番目のインスタンスとFirefoxのインスタンスは正常に動作しています。これは、同じアプリケーションの複数のインスタンス間でもこの問題が発生する可能性があり、最も重要なプログラムであると偽って内部的に「常に最上位」に強制するようなアプリケーションが含まれていないことを示しています。

デスクトップの表示と非表示を再度行っても役に立ちません。最悪の場合、別のウィンドウが「Zオーダーの最上部に接着」してしまう可能性があります。それらの間で簡単に切り替えることができますが、正常に動作するウィンドウを最前面に表示するには、問題のウィンドウを手動で最小化する必要があります。

唯一の治療法はこれまでに問題のあるウィンドウを閉じるようですが、他に役立つものは見つかりませんでした。

「デスクトップの表示」から復元するときに、Windows 7に一部のウィンドウにALWAYS_ON_TOPフラグを強制できるバグがあるか、何か問題がありますか?

詳細:

⊞ Win+d Win7-64bit-Ultimateで簡単に複製できる問題。

(任意のプログラムの)影響を受けるウィンドウは、別の「Z」グループに配置されているようです。複数のウィンドウまたは多くのウィンドウをこの常に最前面の状態にすることができます。影響を受ける状態のウィンドウは、次の場合を除いて、互いに正常に機能します。

  • グループ全体は、影響を受けていないウィンドウの常に一番上にあります
  • グループ全体がタスクバーの前にあります。
  • グループ全体は(タスクバーのコンテキスト)「カスケードウィンドウ」または同様のコマンドに応答しません。

影響を受けるウィンドウがタスクバーの上部にあり、それ以外の場合は「特別なウィンドウ」として機能するという事実は、ウィンドウ7に、デスクトップの表示機能で適用される常時オンの非表示の「機能」が必要であることを示しています。この機能は、ウィンドウをタスクバーの上にあるスーパーウィンドウの状態に配置しているように見えます(タスクバーの後ろに残っている通常のグループ)。タスクバーのスタートメニューまたはコンテキストメニューをクリックすると、スタートメニュー/タスクバーが常に最前面のグループの前面に表示されますが、影響を受けるウィンドウは元に戻りません。他のウィンドウに切り替えるまでの一時的なテイクオーバーのみです。スタートメニュー/タスクバーより。

これが答えを見つけるための鍵です。ウィンドウに特別なスーパーステータスの割り当てを解除する方法、またはそもそも割り当てを行わない方法を教えてください。

さらに別のユーザーからの詳細情報:すべてのウィンドウを閉じて再起動すると、クリアされたようです。最初はエラーを再現できませんでしたが、作業中のすべてのウィンドウを開いた後、実際にどのウィンドウでもエラーを再現しました。

Chromeの複数のウィンドウとの関係で初期化できると思いますが、1つのウィンドウが表示されると、デスクトップの表示の問題が発生します。これは次の理由によるものです。chromeセッションセーバー(セッションバディ)をさらにいじってセッションを復元し、スーパーステートを取得した後、元のウィンドウを復元して閉じました。 2つのウィンドウに35個のchromeタブがあり、他のプログラム、ファイルの場所、リモートデスクトップ、2番目のchromeプロファイルがある「作業環境」でも、エラーを再現できません別のダースのタブで。

それで、超状態現象の実際の扇動者を見つけることで正方形に戻ります。

実際にスーパーサテートの問題が発生すると、次のように再現されます。

chrome(このWebサイトを表示するには)、次にメモ帳、そして電卓を開きます(任意のウィンドウにすることができますが、デモンストレーションの目的で、私に従ってください)。

ウィンドウは正常に機能し、すべてのウィンドウの端が見えるようにウィンドウを重ねます。Zオーダーは(前面から背面へ)です。ブラウザーが上、次に電卓、そしてメモ帳(あなたが見ることができるはずです)背景ウィンドウの一部)。

次に、ブラウザを上にして、win + dを押し、次にもう一度win + dを押します。

電卓をクリックしてからブラウザを選択すると、ブラウザがフォアグラウンドで立ち往生しています。メモ帳をクリックすると、フォーカスがメモ帳に移動し、計算機の前に表示されますが、ブラウザが「スーパーステート」になっているため、ブラウザの後ろにとどまります。 (win + dから戻った後にフォーカスを切り替える多くの方法で問題が発生します。デスクトップをクリックすることを除けば、chromeブラウザと重ならない限り、電卓をスーパーステートにできないことにも気付きました) 。

繰り返しますが、これは少なくとも1つのウィンドウが影響を受けるまでは機能しないようです。

最初のウィンドウをスーパーステートに移行する方法はまだわかりません。後続のウィンドウのみです。

36
Mephane

最近この問題が発生しました。それがどのように始まったかはわかりませんが、私はウィンドウをこの「スーパーウィンドウ」状態にすることができました ⊞ wind 2回クリックして、別のウィンドウをクリックします。私はしようとしました CtrlShiftEsc タスクマネージャーを開くショートカット CtrlAltEsc 代わりに、ウィンドウは通常の状態に戻りました。各ウィンドウのキーシーケンスを使用して、すべてのウィンドウを正常な状態に正常に戻すことができました。 ⊞ wind ウィンドウが「スーパーウィンドウ」状態になることはなくなりました。お役に立てれば。

50
Tim

2つの回避策:

Win + Dを使用します。複製しやすい問題、Win7-64bit-Ultimate。

回避策1すべてのウィンドウをスーパーステートに昇格させて、ウィンドウが互いに正常に相互作用するようにします。この回避策の問題は、すべてのスーパーステートウィンドウの後ろに新しいウィンドウが開いたままになることです。これは、多くのウィンドウやモニターがあるかどうかを確認するのが非常に煩わしい場合があります。

回避策2他の半解決策は、プロセスを閉じて、再度開くことです。新しいウィンドウは通常の状態になりますが、使用すると問題が再発する可能性があります Win+dこの問題を回避するために、数十のウィンドウを何度も閉じたり、再度開いたりする可能性があります。

5

マウスボタンコマンドとして[デスクトップの表示]を使用していますが、同じ問題が発生しています。一部のウィンドウは、[デスクトップの表示]ボタンを押しながらフォーカスを当てた後、[デスクトップの表示]ボタンをもう一度押して、reverseコマンドを実行すると、「常に最前面」のウィンドウとして動作します。

Internet Explorer、Windows Explorer、およびOutlookで気づきました。 Windows 7、Ultimate、x64を実行しています。解決策はありませんが、私のためにウィンドウを閉じて再度開く必要があります。

ただし、システムトレイからサードパーティのソフトウェアを実行せずにこのコマンドを意図的に実行することに興味があります。

[〜#〜]編集[〜#〜]9/29/11

私の元のコメントを助長して、この問題の解決策/回避策を見つけました-しかし、この解決策は私のシステムに固有です。私は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を読み込まなくてもアクティブなウィンドウに適用できるかどうかについては、遠慮なく私の回答に貢献してください。ありがとう。

5
SpewHole

この問題を修正できる古いプログラムが実際にあります。今までその名前を思い出せませんでした。これは、NirsoftによるWinExplorerと呼ばれる昔のユーティリティです。 「サイズと位置」タブの下に、「常に最前面に設定」というオプションがあり、「常に最前面」の動作をウィンドウから削除します。私はWindows 7でこれを使用して、「デスクトップの表示」が物事を台無しにする上記の問題を修正しました。それはまだここから入手できます: http://www.nirsoft.net/utils/winexp.html

1
mmortal03

これはNvidia WMIプロバイダーの問題であることがわかりました。私はこれを2つのインスタンスで実行していました(1つは32ビットバージョンでした)。 32ビット版を停止したところ、問題は解消しました。

1
BJH

私はそれがほぼ8年になったことを知っていますが、私がまだwindows 10でこの問題に苦労している場合、確かに2019でこの問題に直面している人はもっといるでしょう。

どうやら、常に最前面のウィンドウで有効になっている「WS_MINIMIZEBOX」と呼ばれるウィンドウスタイルと関係があるようです。なんらかのバグのようなものだと思います。この問題を回避する方法は、AutoHotkey(ちなみに素晴らしいプログラム)と呼ばれるプログラムを使用し、ウィンドウを上にしてこの "WS_MINIMIZEBOX"を無効にする "Always on Top"機能を作成することでした。

言い換えれば、あなたが使用しているプログラムの元の常時オン機能を使用する代わりに、メディアプレーヤークラシックソフトウェア内の常時オン機能を使用する代わりに、メディアプレーヤークラシックを使用しているとします。これを使用します。目的のウィンドウを常に最前面にするスクリプト。ホットキーをwindows + aに設定します(必要に応じてショートカットを変更したい場合は、AutoHotkeyのサイトでキーリストを確認してください。変更は非常に簡単で、希望する任意のキーの組み合わせを設定できます) )。これが私のスクリプトです。テキストファイルに保存して、ファイル形式を.ahkに変更してください。

私の解決策の唯一の問題は、ウィンドウを再度閉じるまで、ウィンドウを最小化する機能を失うことです。しかし、ウィンドウを常に最前面に表示している場合、ウィンドウを最小化したくないと思うでしょう。また、最小化することはできませんが、常に最前面のオプションを削除できます。windows+ aをもう一度押すだけで、ウィンドウを常に最前面に表示したくない場合は、もう一度押します。これは、この問題に対処するためのよりエレガントで機能的な方法だと思いますが、それが私が思いついたものです。

;Better Always on Top
count = 1
#a::
If count = 1
{
WinSet, Style, -0x20000, A
Winset, Alwaysontop, , A
return
}
Else If count = 2
{
WinSet, Style, ^0x20000, Off ;WS_MINIMIZEBOX
Winset, Alwaysontop, Off
return
}
Return
1
Estranhosidade

私の場合、このバグはDaum PotPlayerで映画を視聴したときに発生しました。プレーヤーで「常に最前面」を有効にし、Win + Dホットキーですべてのウィンドウを最小化して同じ方法で復元すると、何らかの形でアクティブな(フォーカスされている)プログラムが他の前面に表示されます。プレイヤーの「常に手前」を無効にして、バグは消えました...少なくとも今のところ。

0
Mug-why

Windows 7の場合は、コントロールパネルに移動します>>アクセスのしやすさ>>アクセスのしやすさセンター>>下にスクロールしてマウスを使いやすくします>>下にスクロールしてウィンドウを管理しやすくします>>「アクティブ化」のチェックボックスをオフにしますマウスでホバーすることによってウィンドウ」。これで、新しいウィンドウを開くと、そのウィンドウが一番上に表示され、非表示にせずに選択できます。

0
Turewar

Windows 7でもまったく同じ問題が発生することがあります。ウィンドウが画面に貼り付いているので、自分のマシンを使用するのは本当に面倒です。これが起こったときに私はマシンを再起動するのが常でしたが、より簡単な回避策を見つけました。

私がしていることは、エクスプローラーのプロセスを終了して、再度開始することです。私は次のことを行います:

  1. タスクマネージャーを開きます(ショートカットを使用できます Crtl + Shift + Esc)。
  2. [プロセス]タブをクリックし、_"Explorer"_というプロセスを探します。
  3. 右クリックして_"Explorer"_を選択し、_End Process_プロセスを終了します。これにより、開いているすべてのフォルダが閉じ、他のすべてのプログラムは開いたままになります。
  4. まだタスクマネージャーでFileをクリックし、New Task(Run...)を選択します。
  5. 入力ボックスに「Explorer」と入力し、[Ok]をクリックします。これにより、エクスプローラが再び起動します。

粘着性のあるウィンドウが消えるはずです。

0
kkd

しばらくの間私を困らせてきた問題を説明している多くの人々が、多くの役立つ修正ではありません。ただし、Windowsで起動するように構成された一連のプロセス/バックグラウンドアプリを調べて一掃しました。犯人を特定するために1つずつ調べたわけではありませんが、今のところ問題は解決されているようです。開いている複数のウィンドウをAlt + Tabで開くことができます。

ですから、それが私の推奨事項です。スタートアップアプリを必要最低限​​にまで減らしてください。何かが原因で問題が発生している可能性があります。

WIN7:WIN + R、起動タブ、起動時に実行せずに実行できると思われるものをすべて無効にします。

WIN10-Ctrl + Alt + Del、タスクマネージャ、起動タブ、できる限りすべてを無効にする

0
Rob S