Google Chrome:常に上位のバグ


15

あいまいなタイトルで申し訳ありませんが、これは説明が難しいので、どうかご容赦ください。

Web開発のために職場でWindows Vistaを使用しています。バックグラウンドウィンドウにクリックまたはAlt-Tabでクリックすると、ウィンドウがフォーカスされますが、前面に表示されません。

ウィンドウを前面に表示するには、アプリケーションの境界線をクリックして(サイズ変更カーソルが表示されたら)、ウィンドウが前面にジャンプします。

私は約1年間この問題を抱えており、少なくとも1日に12回は発生しますが、常にこれを行うわけではありません-ランダムに思えます。

問題を完全に説明し(そして、あなたがそれを理解した)、この問題を解決するための建設的な答えやコメントをいただければ幸いです。

例:Google Chromeからメモ帳にAlt-Tabでこの問題がランダムに発生した場合、Google Chromeはメモ帳の前に残りますが、ウィンドウがGoogle Chromeの後ろにある間にメモ帳にテキストを入力できます。メモ帳のコンテンツ領域をクリックしても前面には表示されませんが、ウィンドウの境界線をクリックすると表示されます。

ビデオ試験

http://vimeo.com/19388998

このビデオでは、Google ChomeからUltraEditをクリックしましたが、クロムはフォントのままでしたが、ご覧のとおり、UltraEditで入力できます。

これ Google Chromeのバグである可能性があると考え始めているため、他のアプリケーション間でこれが発生するかどうかを引き続き確認します。


コンピューターを低解像度(HD 720p以下)に設定し、Jingを使用して問題を示すビデオをアップロードしてください。さらに、自動的に起動するアプリケーション無効にしてみてくださいAutorunsをしてShellExView何をあなた無効にかかわらを見て、アイドルプログラムまたはエクスプローラの拡張子は、この動作を引き起こしているかどうかを確認するために...
タマラWijsman

特定のアプリケーションを前面で開いて、そこからタブを変更しようとすると発生しますか?そのウィンドウが常に一番上に設定されている場合があります。私のmIRCウィンドウが常に一番上に表示されるように設定されていたとき、私はしばらくこの問題を抱えていました。
ウィンドス

この問題も発生します(Windows 7を使用)。問題の性質は正確にはわかりませんが、Webブラウザーを開いて、開いたWebサイトの1つにFlashコンテンツがあるときに起こると思います。とはいえ、それを再現することはできないようです。
happy_soil

考えてみると、「常に上」に設定されているプログラムをバックグラウンドで実行しているので、ウィンドウのフォーカスを妨げる可能性があります。
happy_soil

@happy_soil:これを答えとして出すかもしれません。この動作を説明するには、「常に手前に表示」ウィンドウを実行するとよいでしょう。
ハリーマク

回答:


6

Chromeの場合、これは既知の問題です 。Chromeウィンドウの最前面の動作

この問題の簡単な解決策は、Chromeウィンドウを選択してF11を2回押すことです。


このバグへのリンクをありがとう、しかし、それは私が抱えている問題ではありません。私の問題は、タスクバーではなくアプリケーションウィンドウに関連しています。この段階でChromeがこの問題を引き起こしているかどうかは確認できません。
GateKiller

その前のコメントが失礼に思えたなら、すみません。それは私の意図ではありませんでした。あなたの入力に感謝します:)
GateKiller

このバグは明らかにalt-tabとタスクバーの両方に影響します。最初のバグレポートはタスクバーに関するものでしたが、コメント41ではalt-tabへの影響も指摘されています。(そして、あなたのコメントはまったく失礼に聞こえませんでした。)
harrymc

さらに読んでテストした結果、Windows用のGoogle Chromeが実際に問題であることに同意します。Googleが問題を解決するのを待つ間、回答に回避策を追加しました。
GateKiller

1
私はWindows 10を使用しています。この問題はまだあり、F11を2回使用しても機能しません。
ロッディ

4

どのように見えますか?

その問題に近い動作が1つだけあり、それがAlways On Top動作になります。
おそらくプログラム自体からのコードの一部が、ウィンドウのプロパティを変更している可能性があります...

ウィンドウはどのように「常に最前面」に設定されますか?

常に最上部にとどまるフォームを作成する方法は、2番目のパラメーターを HWND_TOPMOSTに設定して SetWindowPosが呼び出されることを示しています。これにより、すぐに最上部に配置され、そのままになります。

簡単なGoogleの後、この結果User32.dllがこの関数の所有者であることを明らかにします。

誰が私のウィンドウを「Always On Top」に設定しますか?

どの関数が呼び出されるかがわかったので、その関数がいつ呼び出されるかを知りたいと思うでしょう。これにはスタックトレースを作成して分析する必要がありますが、Windows Performance Toolkitでこれを行うことができますが、Rohitab Batraが素晴らしいApi Monitorを作成したことを非常に嬉しく思います。

申し訳ありませんが、これは難しい宿題です。

  • API Monitorをダウンロードしてインストールします。
  • 管理者として API Monitor 開きます。64ビットを使用している場合は、これを2回行う必要があります。
  • 左側のAPI Capture Filter何もチェックされていないことを確認してください。
  • 同じ場所で、そのダイアログの上部にあるすべてのモジュールUser32.dllに変更します。
  • に行く

    Windows Application UI Development > Windows and Messages > Windows
    

    その後

    User32.dll > SetWindowPos
    

次に、いくつかのプロセスをフックします。注意事項: PIDでソートしwinlogon.exe、それよりも低いPIDを持つものにフックしないでください。そうすると、システムがハングまたはクラッシュします。この動作は他のプロセスでも発生する可能性がありますが、どのプロセスをフックできるかを確認するのは試行錯誤のようなものです。そう:

  • PIDでソートし、より新しいものをすべてフックしますwinlogon.exe
  • すべてがうまくいけばHooked Processダイアログでスレッドを調べることができます。
  • 次のようなAPI呼び出しを探します。

    SetWindowPos(0x000000000002043c、HWND_BOTTOM | 0x00000000fffffffe
    0、0、0、0 、SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE)

呼び出しSetWindowPosHWND_BOTTOM | 0x00000000fffffffe-2 + 1 = -1 = HWND_TOPMOST)は私たちが求めているものであり、この呼び出しを行うプロセスが問題の原因となるはずです。

私はあきらめます...どうすれば「Always On Top」問題を解決できますか?

火と火の戦い、すべてのウィンドウをHWND_NOTOPMOSTに設定します。

いいね、プログラミング!しかし、これもスクリプトを使用して簡単に行うことができます...

とても簡単な宿題のタスク:

  • AutoIt v3をダウンロードします。

  • 以下を含むByeByeTopMost.au3ファイルを作成します。

    While 1
        $var = WinList()
    
        For $i = 1 to $var[0][0]
            WinSetOnTop($var[$i][1], "", 0)
        Next
    
        Sleep(5000)
    WEnd
    
  • 起動フォルダーに配置して実行するか、再起動します。

または、宿題がまったく気に入らない場合は、私が作成したこのzipファイルをダウンロードしてください

楽しんで... :-)

PS:この最後のケースでは、「Always On Top」機能を使用できません。トラブルシューティングまたは回避策のいずれか; ;-)


私はこの答えが好きです。
スーパーシリアル

問題が発生したときにSetWindowPosが起動しません...また、質問の名前を完全に変更してから回答を書くことも非常に不快です。
GateKiller

1
@GateKiller:その攻撃はどうですか?より良い回答を得るのに役立ちます。問題のより適切な説明でもあり(「前面のウィンドウ」は一般的に「常に上部」と呼ばれます)、回答を受け取った後、タイトルをGoogle Chrome 変更しました。とにかく、あなたはいつでもロールバックすることができ、問題が解決したことをうれしく思います。さらに、問題が発生する前にSetWindowPosが起動するか、同じ効果を持つ別の同様のプロシージャを呼び出すことができます... :-)
Tamara Wijsman

4

これを無効にするには、ヒットする必要があります

ALT +スペース+ C

alt+ space+c

これらのボタンを押すと、Google Chromeブラウザーが自動的に閉じます。その後、Googleクロムブラウザーを再度起動します。

問題は永遠に解決されます:)


ALT + Space + Cでブラウザを閉じて問題を修正しました。私はあなたの答えを支持するためにここに戻ってきた。
オスカーフラクセダス

1
これが私の問題を解決した唯一のことです。
ddonche


0

1つの簡単な修正方法は、Windows 7/8 / 8.1のタスクバーの右側にある[デスクトップの表示]ボタンを2回クリックすることです。


1
書かれているように、あなたの答えは有用な情報をほとんど提供しません。少し拡張できますか?
bwDraco 14年

0

私はこの同じ問題を抱えていたので、[スタート]メニューの[ユーザーの切り替え]に移動し、ウィンドウに再度ログインした後、ツールバーを再度尊重しました。これはすべてのウィンドウに影響を与えるように見え、クロムが原因である可能性がありますが、Windowsシステム全体に影響するように思われ、Windows自体からの犯人の可能性を示唆しています。この投稿は、Windows XPと7の両方で5年間Chromeユーザーになってから最初に問題に遭遇した後に行います。


0

まあ、私は同じ問題を抱えていた、そしてF11をダブルタップしても何も解決しなかった。しかし、私は2つのGoogle Chromeウィンドウを開いていたので、私が持っていた他のすべてのウィンドウ(Steam、Notepadなど)の上にあるのはそのうちの1つだけであることがわかりました。次に、常に上部にあるタブの1つを選択して、それを使用して新しいウィンドウを作成し、上部のウィンドウから新しいタブにすべての他のタブを使用しました。これで、通常のように、選択するとすべてのウィンドウが上部に表示されます。

これが役立つことを願っています:)


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.