Google Chrome: bug sempre in primo piano


15

Ci scusiamo per il titolo vago ma questo è difficile da spiegare, quindi abbiate pazienza con me.

Sto usando Windows Vista al lavoro per lo sviluppo web e, a volte, quando faccio clic o Alt-Tab sulla finestra di sfondo, la finestra si attiva ma non viene portata in primo piano.

Per portare la finestra in primo piano, devo fare clic sul bordo delle applicazioni (quando appare il cursore di ridimensionamento) e la finestra salterà in primo piano.

Ho questo problema da circa un anno e succede almeno una dozzina di volte al giorno, ma non lo fa sempre - sembra casuale.

Spero di aver spiegato completamente il problema (e tu l'abbia capito) e apprezzerei qualsiasi risposta costruttiva o commento per risolvere questo problema.

Esempio: se Alt-Tab da Google Chrome a Blocco note e questo problema si verifica in modo casuale, Google Chrome rimarrà davanti a Blocco note, tuttavia, sarò in grado di digitare il testo in Blocco note mentre la finestra è dietro Google Chrome. Fare clic sull'area del contenuto di Blocco note non lo porterà in primo piano, ma facendo clic sul bordo della finestra lo farà.

Esempio video

http://vimeo.com/19388998

In questo video, ho fatto clic da Google Chome su UltraEdit e Chrome è rimasto nei caratteri, ma come puoi vedere, posso ancora digitare UltraEdit.

Sto iniziando a credere che questo potrebbe essere un bug in Google Chrome, quindi continuerò a vedere se questo tra altre applicazioni.


Potresti impostare il computer su una risoluzione inferiore (HD 720p o meno) e caricare un video che mostra il problema utilizzando Jing . Inoltre, prova a disabilitare le applicazioni che si avviano automaticamente con Autoruns e ShellExView per vedere se un programma inattivo o l'estensione di explorer sta causando questo comportamento, fai attenzione a cosa disabiliti ...
Tamara Wijsman

Succede quando hai una certa applicazione aperta di fronte e provi ad alt tab da quello? Potrebbe essere un caso che quella finestra sia stata impostata per essere sempre in primo piano. Ho avuto questo problema per un po 'quando la mia finestra mIRC era impostata per essere sempre in primo piano.
Windos,

Riscontro anche questo problema (usando Windows 7). Anche se non conosco esattamente la natura del problema, penso che accada quando ho il browser Web aperto e c'è un contenuto flash su uno dei siti Web che ho aperto. Detto questo, però, non riesco a replicarlo.
happy_soil

Ora che ci penso, ho alcuni programmi in esecuzione che sono impostati come "Sempre in primo piano", quindi penso che potrebbe interferire con la messa a fuoco della finestra.
happy_soil

@happy_soil: potresti metterlo come risposta. Una finestra "Sempre in primo piano" in esecuzione è una buona spiegazione per questo comportamento.
harrymc,

Risposte:


6

Nel caso di Chrome, questo è un problema noto: comportamento della finestra di Chrome sempre in primo piano

Una soluzione rapida per questo problema è selezionare la finestra di Chrome e premere F11 due volte.


Grazie per il link questo bug, tuttavia, non è il problema che sto riscontrando. Il mio problema è legato alle finestre dell'applicazione e non alla barra delle applicazioni. Non posso confermare in questa fase se Chrome sta causando questo problema o meno.
GateKiller

Mi dispiace se quel commento precedente sembrava maleducato. Non era mia intenzione. Apprezzo il tuo contributo :)
GateKiller

Apparentemente questo bug interessa sia alt-tab che la barra delle applicazioni. La segnalazione iniziale di bug era per la barra delle applicazioni, ma il commento 41 ha anche notato il suo effetto su alt-tab. (e il tuo commento non sembrava affatto maleducato.)
harrymc,

Dopo ulteriori letture e test, sono d'accordo che Google Chrome per Windows è davvero il problema. Ho aggiunto soluzioni alternative alla tua risposta mentre aspettiamo che Google risolva il problema.
GateKiller,

1
Sono su Windows 10. Questo problema è ancora presente e F11 due volte non funziona neanche.
Rosdi,

4

Che cosa sembra?

Esiste un solo comportamento vicino a quel problema e quello sarebbe il comportamento Sempre in primo piano .
Qualche codice, forse dal programma stesso potrebbe cambiare la proprietà della tua finestra ...

Come viene impostata una finestra "Sempre in primo piano"?

Come creare un modulo che rimanga sempre in primo piano ci mostra che SetWindowPos viene chiamato con il secondo parametro impostato su HWND_TOPMOST , questo lo posiziona immediatamente in primo piano e lo mantiene tale.

Dopo un rapido Google, questo risultato rivela User32.dll come proprietario di questa funzione.

Chi imposta la mia finestra "Sempre in primo piano"?

Ora che abbiamo la conoscenza di quale funzione viene chiamata, vorremmo sapere quando viene chiamata quella funzione. Ciò richiederà di creare tracce dello stack e di analizzarle, mentre Windows Performance Toolkit può farlo, possiamo essere molto felici che Rohitab Batra abbia scritto il fantastico Api Monitor .

Ci dispiace, ma questo è un duro compito:

  • Scarica API Monitor e installalo.
  • Apri API Monitor come amministratore , se hai 64 bit, devi farlo due volte.
  • Assicurati che nulla sia selezionato nel Filtro cattura API sul lato sinistro.
  • Nello stesso posto, cambia Tutti i moduli nella parte superiore della finestra di dialogo in User32.dll .
  • Vai a

    Windows Application UI Development > Windows and Messages > Windows
    

    e poi

    User32.dll > SetWindowPos
    

Ora vorrai agganciare alcuni processi. Avvertenza: ordina per PID e non agganciarti a winlogon.exenulla o con qualcosa che ha un PID inferiore a quello, se lo fai bloccherai o arresterai il sistema. Potresti provare questo comportamento anche con altri processi, ma è un po 'come una prova ed errore vedere quali puoi agganciare. Così:

  • Ordina per PID e aggancia tutto ciò che è più recente di winlogon.exe.
  • Se tutto va bene, puoi guardare attraverso i thread nella finestra di dialogo Processo agganciato .
  • Cerca una chiamata API simile a questa:

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

Una chiamata a SetWindowPos con HWND_BOTTOM | 0x00000000fffffffe ( -2 + 1 = -1 = HWND_TOPMOST ) è ciò che stiamo cercando e il processo che fa questa chiamata è quello che dovresti dare la colpa al tuo problema.

Mi arrendo ... Come posso risolvere il mio problema "Sempre in primo piano"?

Combatti il ​​fuoco con il fuoco, imposteremo tutte le finestre su HWND_NOTOPMOST .

Yikes, programmazione! Ma questo può essere fatto facilmente anche tramite gli script ...

Quindi un compito molto semplice:

  • Scarica AutoIt v3 .

  • Creare un file ByeByeTopMost.au3 che contiene:

    While 1
        $var = WinList()
    
        For $i = 1 to $var[0][0]
            WinSetOnTop($var[$i][1], "", 0)
        Next
    
        Sleep(5000)
    WEnd
    
  • Inseriscilo nella cartella di avvio ed eseguilo o riavvia.

O se non ti piacciono i compiti, scarica questo file zip che ho creato.

Divertiti... :-)

PS: in quest'ultimo caso non è possibile utilizzare la funzione "Sempre in primo piano". O risolvere i problemi o aggirare ... ;-)


Mi piace questa risposta.
Supercereal

SetWindowPos non si attiva quando si verifica il problema ... Trovo anche molto offensivo che tu rinomini completamente la domanda e poi scriva una risposta per essa.
GateKiller,

1
@GateKiller: come è offensivo? Ti aiuta a ricevere risposte migliori. È anche una descrizione più corretta del tuo problema (poiché "windows in front" è comunemente noto come "sempre in primo piano") e ora hai cambiato il titolo in Google Chrome dopo aver ricevuto le risposte . Ad ogni modo, sei sempre libero di eseguire il rollback e sono contento che tu abbia risolto il tuo problema, inoltre SetWindowPos si attiva prima che si verifichi il problema o si potrebbe chiamare un'altra procedura simile che ha lo stesso effetto ... :-)
Tamara Wijsman

4

Per disabilitarlo devi premere

ALT + Spazio + C

alt+ space+c

Dopo aver premuto questi pulsanti, il browser Google Chrome si chiuderà automaticamente. Quindi riavviare il browser Google Chrome.

Il problema sarà risolto per sempre :)


ALT + Spazio + C ha chiuso il mio browser e risolto il problema. Sono dovuto tornare qui per votare la tua risposta.
Oscar Fraxedas,

1
Questa è l'unica cosa che ha risolto il mio problema.
Ddonche,


0

Una soluzione rapida è quella di fare clic due volte sul pulsante "Mostra desktop" sul lato destro della barra delle applicazioni su Windows 7/8 / 8.1


1
Come scritto, la tua risposta fornisce pochissime informazioni utili. Puoi espanderlo un po '?
bwDraco,

0

Ho avuto lo stesso problema e sono riuscito a risolverlo andando su "Cambia utente" nel menu Start e dopo aver effettuato di nuovo il login in Windows ho rispettato di nuovo la barra degli strumenti. Sembrava interessare tutte le finestre e sebbene Chrome potesse essere una causa, sembrava decisamente influenzare il sistema Windows, suggerendo un possibile colpevole all'interno di Windows stesso. Pubblicare questo post dopo il mio primo incontro con il problema dopo essere stato un utente Chrome per 5 anni su Windows XP e 7.


0

Bene, ho avuto lo stesso problema e toccando due volte F11 non si è risolto nulla. Ma ho visto, poiché avevo aperto due finestre di Google Chrome, che solo una di esse era in cima a tutte le altre finestre che avevo (Steam, Blocco note, ecc.). Ho quindi preso una delle schede sempre in primo piano e ho creato una nuova finestra con essa, quindi ho portato tutte le altre schede dalla finestra superiore a quella nuova. Ora ogni finestra appare in alto quando la seleziono, come al solito.

Spero che questo possa aiutare :)


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.