Google Chrome: Always On Top Bug


15

Entschuldigen Sie den vagen Titel, aber dieser ist schwer zu erklären.

Ich verwende Windows Vista bei der Arbeit für die Webentwicklung und manchmal, wenn ich auf das Hintergrundfenster klicke oder die Alt-Tab-Taste drücke, erhält das Fenster den Fokus, wird jedoch nicht in den Vordergrund gebracht.

Um das Fenster nach vorne zu bringen, muss ich auf den Rand der Anwendung klicken (wenn der Größenänderungscursor angezeigt wird) und das Fenster wird dann nach vorne springen.

Ich habe dieses Problem seit ungefähr einem Jahr und es passiert mindestens ein Dutzend Mal am Tag, aber es tut dies nicht die ganze Zeit - scheint zufällig.

Ich hoffe, ich habe das Problem vollständig erklärt (und Sie haben es verstanden) und würde mich über konstruktive Antworten oder Kommentare zur Lösung dieses Problems freuen.

Beispiel: Wenn ich die Alt-Tab-Taste von Google Chrome in den Editor drücke und dieses Problem zufällig auftritt, bleibt Google Chrome vor dem Editor. Ich kann jedoch Text in den Editor eingeben, während sich das Fenster hinter Google Chrome befindet. Wenn Sie auf den Inhaltsbereich von Notepad klicken, wird dieser nicht in den Vordergrund gerückt, sondern durch Klicken auf den Fensterrand.

Video Exampe

http://vimeo.com/19388998

In diesem Video habe ich von Google Chome auf UltraEdit geklickt und Chrome blieb in der Schriftart, aber wie Sie sehen, kann ich UltraEdit weiterhin eingeben.

Ich fange an zu glauben , dass dies könnte einen Fehler in Google Chrome, damit ich , wenn diese zwischen anderen Anwendungen beobachten , werde weiterhin.


Könnten Sie setzen Ihren Computer auf eine niedrigere Auflösung (HD 720p oder weniger) und ein Video hochladen , das zeigt das Problem mit Jing . Darüber hinaus versuchen , Anwendungen zu deaktivieren , die automatisch mit Start Autoruns und ShellExView zu sehen , ob ein Leerlaufprogramm oder Explorer - Erweiterung dieses Verhalten verursacht, aufpassen, was Sie deaktivieren wenn ...
Tamara Wijsman

Kommt es vor, wenn Sie eine bestimmte Anwendung geöffnet haben und versuchen, von dieser aus einen Tabulator zu öffnen? Es kann vorkommen, dass dieses Fenster so eingestellt wurde, dass es immer oben ist. Ich hatte dieses Problem für eine Weile, als mein mIRC-Fenster so eingestellt war, dass es immer im Vordergrund war.
Windos

Ich stoße auch auf dieses Problem (unter Windows 7). Obwohl ich die Art des Problems nicht genau kenne, glaube ich, dass es passiert, wenn ich meinen Webbrowser geöffnet habe und auf einer der Websites, die ich geöffnet habe, Flash-Inhalte vorhanden sind. Trotzdem kann ich es scheinbar nicht wiederholen.
happy_soil

Nachdem ich darüber nachgedacht habe, habe ich einige Programme im Hintergrund ausgeführt, die als "Immer im Vordergrund" eingestellt sind. Ich denke also, dass dies die Fokussierung des Fensters beeinträchtigen könnte.
happy_soil

@happy_soil: Sie könnten dies als Antwort setzen. Ein laufendes "Always on Top" -Fenster ist eine gute Erklärung für dieses Verhalten.
Harrymc

Antworten:


6

Im Fall von Chrome handelt es sich um ein bekanntes Problem: Immer im Vordergrund stehendes Verhalten von Chrome-Fenstern

Eine schnelle Lösung für dieses Problem besteht darin, das Chrome-Fenster auszuwählen und zweimal F11 zu drücken.


Vielen Dank für den Link zum Fehler, aber es ist nicht das Problem, das ich habe. Mein Problem hängt mit Anwendungsfenstern und nicht mit der Taskleiste zusammen. Ich kann zum gegenwärtigen Zeitpunkt nicht bestätigen, ob dieses Problem durch Chrome verursacht wurde oder nicht.
GateKiller

Es tut mir leid, wenn dieser vorherige Kommentar unhöflich klang. Es war nicht meine Absicht. Ich weiß Ihre Eingabe zu schätzen :)
GateKiller

Dieser Fehler betrifft anscheinend sowohl Alt-Tab als auch die Taskleiste. Der erste Fehlerbericht betraf die Taskleiste, aber Kommentar 41 vermerkte auch seine Auswirkung auf Alt-Tab. (Und Ihr Kommentar klang überhaupt nicht unhöflich.)
Harrymc

Nach weiterem Lesen und Testen bin ich damit einverstanden, dass Google Chrome für Windows tatsächlich das Problem ist. Ich habe Ihre Antwort umgangen, während wir darauf warten, dass Google das Problem behebt.
GateKiller

1
Ich bin auf Windows 10. Dieses Problem ist immer noch da und F11 zweimal funktioniert auch nicht.
Rosdi

4

Wie sieht es aus?

Es gibt nur ein Verhalten in der Nähe dieses Problems, und das ist das Always On Top- Verhalten.
Ein Teil des Codes, vielleicht aus dem Programm selbst, könnte die Eigenschaft Ihres Fensters ändern ...

Wie soll ein Fenster "Immer im Vordergrund" sein?

Wie man ein Formular erstellt, das immer im Vordergrund bleibt, zeigt uns, dass SetWindowPos mit dem zweiten auf HWND_TOPMOST gesetzten Parameter aufgerufen wird. Dadurch wird es sofort im Vordergrund platziert und bleibt so.

Nach einer schnellen Google- Suche zeigt dieses Ergebnis , dass User32.dll der Eigentümer dieser Funktion ist.

Wer setzt mein Fenster auf "Always On Top"?

Nachdem wir nun wissen, welche Funktion aufgerufen wird, möchten wir wissen, wann diese Funktion aufgerufen wird. Dazu müssen wir Stack-Traces erstellen und analysieren. Das Windows Performance Toolkit kann dies. Wir können jedoch sehr froh sein, dass Rohitab Batra den fantastischen Api-Monitor geschrieben hat .

Sorry, aber das sind harte Hausaufgaben:

  • Laden Sie API Monitor herunter und installieren Sie es.
  • Öffnen Sie API Monitor als Administrator . Wenn Sie über 64-Bit verfügen, müssen Sie dies zweimal tun.
  • Stellen Sie sicher, dass im API-Erfassungsfilter auf der linken Seite nichts aktiviert ist .
  • Ändern Sie an derselben Stelle Alle Module oben in diesem Dialogfeld in User32.dll .
  • Gehe zu

    Windows Application UI Development > Windows and Messages > Windows
    

    und dann

    User32.dll > SetWindowPos
    

Nun möchten Sie einige Prozesse einbinden. Achtung: Sortieren Sie nach PID und schließen Sie sich nicht an winlogon.exeoder an etwas, das eine niedrigere PID als diese hat. Andernfalls können Sie Ihr System zum Absturz bringen oder zum Stillstand bringen. Möglicherweise tritt dieses Verhalten auch bei anderen Prozessen auf, aber es ist ein Versuch und Irrtum, festzustellen, welche Sie einbinden können. So:

  • Sortieren Sie nach PID und hängen Sie alles ein, was neuer ist als winlogon.exe.
  • Wenn alles gut geht, können Sie die Threads im Dialogfeld " Hooked Process" durchsehen.
  • Suchen Sie nach einem API-Aufruf, der folgendermaßen aussieht:

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

Ein Aufruf von SetWindowPos mit HWND_BOTTOM | 0x00000000fffffffe ( -2 + 1 = -1 = HWND_TOPMOST ) ist das, wonach wir streben, und der Prozess, der diesen Aufruf ausführt , ist derjenige, den Sie für Ihr Problem verantwortlich machen sollten.

Ich gebe auf ... Wie kann ich mein "Always On Top" -Problem beheben?

Bekämpfe Feuer mit Feuer, wir werden alle Fenster auf HWND_NOTOPMOST setzen .

Huch, Programmierung! Dies kann aber auch einfach durch Skripten geschehen ...

Also eine sehr einfache Hausaufgabe:

  • Laden Sie AutoIt v3 herunter .

  • Erstellen Sie eine ByeByeTopMost.au3- Datei, die Folgendes enthält:

    While 1
        $var = WinList()
    
        For $i = 1 to $var[0][0]
            WinSetOnTop($var[$i][1], "", 0)
        Next
    
        Sleep(5000)
    WEnd
    
  • Legen Sie es in Ihren Startordner und führen Sie es aus oder starten Sie es neu.

Oder wenn Sie Hausaufgaben überhaupt nicht mögen, laden Sie diese Zip-Datei herunter, die ich erstellt habe.

Habe Spaß... :-)

PS: In diesem letzten Fall können Sie die Funktion "Immer im Vordergrund" nicht verwenden. Entweder Fehlerbehebung oder Umgehung ... ;-)


Ich mag diese Antwort.
Supercereal

SetWindowPos wird nicht ausgelöst, wenn das Problem auftritt ... Ich finde es auch sehr beleidigend, dass Sie die Frage vollständig umbenennen und dann eine Antwort darauf schreiben.
GateKiller

1
@GateKiller: Wie ist das beleidigend? Es hilft Ihnen, bessere Antworten zu erhalten. Es ist auch eine genauere Beschreibung Ihres Problems (da "Fenster vorne" im Allgemeinen als "Immer im Vordergrund" bezeichnet wird). Nachdem Sie Antworten erhalten haben, haben Sie Ihren Titel in Google Chrome geändert . Wie auch immer, sie ist immer frei rückgängig zu machen , und ich bin froh , dass Sie Ihr Problem gelöst haben, weiterhin SetWindowPos würde Feuer , bevor das Problem auftritt oder ein anderes ähnliches Verfahren , das die gleiche Wirkung könnte genannt werden ... :-)
Tamara Wijsman

4

Um dies zu deaktivieren, müssen Sie drücken

ALT + Leertaste + C

alt+ space+c

Nach dem Drücken dieser Tasten wird der Google Chrome Browser automatisch geschlossen. Starten Sie dann erneut den Google Chrome Browser.

Das Problem wird für immer gelöst sein :)


ALT + Leertaste + C hat meinen Browser geschlossen und das Problem behoben. Ich musste hierher zurückkommen, um deine Antwort zu unterstützen.
Oscar Fraxedas

1
Dies ist das einzige, was mein Problem gelöst hat.
Donche

1

Habe auch dieses Problem und finde einen Weg, es zu umgehen. Ich habe die Software "Always on Top" installiert .

Und ich benutze es auf Chrome für Windows, das den Status der Eigenschaft geändert hat alwaysontop.


0

Eine schnelle Lösung besteht darin, in Windows 7/8 / 8.1 ganz rechts auf der Taskleiste zweimal auf die Schaltfläche "Desktop anzeigen" zu klicken


1
Wie bereits geschrieben, enthält Ihre Antwort nur sehr wenige nützliche Informationen. Kannst du es ein bisschen erweitern?
bwDraco

0

Ich hatte das gleiche Problem und konnte es beheben, indem ich im Startmenü auf "Benutzer wechseln" ging und nach dem erneuten Anmelden in den Fenstern die Symbolleiste wieder respektierte. Es schien sich auf alle Fenster auszuwirken und obwohl Chrom eine Ursache sein könnte, schien es sich definitiv auf das gesamte Windows-System auszuwirken, was auf einen möglichen Schuldigen innerhalb von Windows selbst hindeutet. Diesen Beitrag nach meinem ersten Start mit dem Problem zu verfassen, nachdem ich 5 Jahre lang Chrome-Nutzer unter Windows XP und Windows 7 war.


0

Nun, ich hatte das gleiche Problem, und durch zweimaliges Antippen von F11 konnte nichts behoben werden. Da jedoch zwei Google Chrome-Fenster geöffnet waren, sah ich, dass sich nur eines von ihnen über jedem anderen Fenster befand (Steam, Notepad usw.). Ich nahm dann einen der immer am Anfang befindlichen Reiter und machte ein neues Fenster damit und nahm dann jeden anderen Reiter vom oberen Fenster zum neuen. Jetzt erscheint jedes Fenster oben, wenn ich es wie gewohnt auswähle.

Hoffe das kann helfen :)


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.