Google Chrome: Selalu Di Atas Bug

15

Maaf untuk judul yang tidak jelas tapi yang ini sulit untuk dijelaskan, jadi tolong bersabarlah.

Saya menggunakan Windows Vista di tempat kerja untuk pengembangan web dan kadang-kadang ketika saya mengklik atau Alt-Tab ke jendela latar belakang, jendela akan mendapatkan fokus tetapi tidak akan dibawa ke depan.

Untuk membawa jendela ke depan, saya harus mengklik batas aplikasi (ketika kursor ukuran muncul) dan jendela kemudian akan melompat ke depan.

Saya sudah memiliki masalah ini selama sekitar satu tahun sekarang dan itu terjadi setidaknya selusin kali sehari, tetapi tidak melakukan ini sepanjang waktu - tampaknya acak.

Saya harap saya telah menjelaskan masalah ini sepenuhnya (dan Anda telah memahaminya) dan akan menghargai setiap jawaban atau komentar yang membangun untuk menyelesaikan masalah ini.

Contoh: Jika Saya Alt-Tab dari Google Chrome ke Notepad dan masalah ini terjadi secara acak, Google Chrome akan tetap di depan Notepad, namun, saya akan dapat mengetik teks ke Notepad saat jendela berada di belakang Google Chrome. Mengklik pada area konten Notepad tidak akan membawanya ke depan tetapi mengklik batas jendela itu akan.

Contoh Video

http://vimeo.com/19388998

Dalam video ini, saya mengklik dari Google Chome ke UltraEdit dan chrome tetap di font, tetapi seperti yang Anda lihat, saya masih bisa mengetikkan UltraEdit.

Saya mulai percaya bahwa ini bisa menjadi bug di Google Chrome jadi saya akan terus menonton jika ini di antara aplikasi lain.

GateKiller
sumber
Bisakah Anda mengatur komputer Anda ke resolusi yang lebih rendah (HD 720p atau kurang) dan mengunggah video yang menunjukkan masalah menggunakan Jing . Selain itu, coba nonaktifkan aplikasi yang secara otomatis mulai dengan Autoruns dan ShellExView untuk melihat apakah program idle atau ekstensi explorer menyebabkan perilaku ini, perhatikan apa yang Anda nonaktifkan ...
Tamara Wijsman
Apakah itu terjadi ketika Anda memiliki aplikasi tertentu terbuka di depan dan mencoba alt alt dari itu? Bisa jadi itu jendela yang telah diatur untuk selalu di atas. Saya memiliki masalah ini sebentar ketika jendela mIRC saya diatur untuk selalu berada di atas.
Windos
Saya juga mengalami masalah ini (menggunakan Windows 7). Meskipun saya tidak tahu persis sifat masalahnya, saya pikir itu terjadi ketika browser Web saya dibuka dan ada konten flash di salah satu situs Web yang saya buka. Karena itu, sepertinya saya tidak bisa meniru.
happy_soil
Sekarang saya memikirkannya, saya menjalankan beberapa program di latar belakang yang ditetapkan sebagai "Selalu di Atas", jadi saya pikir itu mungkin mengganggu dengan fokus jendela.
happy_soil
@happy_soil: Anda mungkin memasang ini sebagai jawaban. Jendela "Selalu di Atas" yang sedang berjalan adalah penjelasan yang baik untuk perilaku ini.
harrymc

Jawaban:

6

Dalam kasus Chrome, ini adalah masalah yang diketahui: Perilaku Chrome selalu ada di atas jendela

Perbaikan cepat untuk masalah ini adalah memilih Jendela Chrome dan tekan F11 dua kali.

harrymc
sumber
Terima kasih atas tautan bug ini, bagaimanapun, ini bukan masalah yang saya alami. Masalah saya terkait dengan jendela aplikasi dan bukan bilah tugas. Saya tidak dapat mengkonfirmasi pada tahap ini apakah Chrome yang menyebabkan masalah ini atau tidak.
GateKiller
Maaf jika komentar sebelumnya itu terdengar kasar. Bukan niat saya. Saya sangat menghargai masukan Anda :)
GateKiller
Bug ini tampaknya mempengaruhi alt-tab dan taskbar. Laporan bug awal adalah untuk taskbar, tetapi komentar 41 juga mencatat efeknya pada alt-tab. (dan komentar Anda sama sekali tidak terdengar kasar.)
harrymc
Setelah membaca dan menguji lebih lanjut, saya setuju bahwa Google Chrome untuk Windows memang masalahnya. Saya telah menambahkan solusi untuk jawaban Anda sementara kami menunggu Google untuk memperbaiki masalah ini.
GateKiller
1
Saya di Windows 10. Masalah ini masih ada, dan F11 dua kali tidak berfungsi baik.
Rosdi
4

Seperti apa bentuknya?

Hanya ada satu perilaku yang dekat dengan masalah itu dan itu akan menjadi perilaku Selalu Di Atas .
Beberapa kode, mungkin dari program itu sendiri mungkin mengubah properti jendela Anda ...

Bagaimana cara mengatur jendela menjadi "Selalu Di Atas"?

Cara Membuat Formulir yang Selalu Berada di Atas menunjukkan kepada kita bahwa SetWindowPos dipanggil dengan parameter kedua yang ditetapkan ke HWND_TOPMOST , ini segera menempatkannya di atas dan membuatnya tetap seperti itu.

Setelah Google cepat, hasil ini mengungkapkan User32.dll menjadi pemilik fungsi ini.

Siapa yang mengatur jendela saya "Selalu Di Atas"?

Sekarang kita memiliki pengetahuan fungsi apa yang disebut, kita akan ingin tahu kapan fungsi itu dipanggil. Ini akan mengharuskan kita untuk membuat jejak stack dan menganalisanya, sementara Windows Performance Toolkit dapat melakukan ini kita bisa sangat senang bahwa Rohitab Batra telah menulis Api Monitor yang mengagumkan .

Maaf, tapi ini pekerjaan rumah yang sulit:

  • Unduh API Monitor dan instal.
  • Buka Monitor API sebagai administrator , jika Anda memiliki 64 bit, Anda harus melakukan ini dua kali.
  • Pastikan tidak ada yang diperiksa di API Capture Filter di sebelah kiri.
  • Di tempat yang sama, ubah Semua Modul di bagian atas Dialog itu menjadi User32.dll .
  • Pergi ke

    Windows Application UI Development > Windows and Messages > Windows
    

    lalu

    User32.dll > SetWindowPos
    

Sekarang, Anda ingin mengaitkan beberapa proses. Kata hati-hati: Urutkan berdasarkan PID dan jangan menghubungkan ke winlogon.exeatau apa pun yang memiliki PID lebih rendah dari itu, jika Anda melakukannya, Anda akan hang atau crash sistem Anda. Anda mungkin mengalami perilaku ini dengan proses lain juga, tapi itu seperti percobaan dan kesalahan untuk melihat mana yang bisa Anda kaitkan. Begitu:

  • Urutkan berdasarkan PID, dan kaitkan semua yang lebih baru dari winlogon.exe.
  • Jika semuanya berjalan dengan baik, Anda dapat melihat utas di dialog Hooked Process .
  • Cari panggilan API yang terlihat seperti ini:

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

Panggilan ke SetWindowPos dengan HWND_BOTTOM | 0x00000000fffffffe ( -2 + 1 = -1 = HWND_TOPMOST ) adalah apa yang kami kejar dan proses yang melakukan panggilan ini adalah yang harus Anda salahkan atas masalah Anda.

Saya menyerah ... Bagaimana saya bisa memperbaiki masalah "Selalu Di Atas" saya?

Pertempuran dengan api, kita akan mengatur semua jendela ke HWND_NOTOPMOST .

Astaga, pemrograman! Tapi, ini bisa dengan mudah dilakukan melalui scripting juga ...

Jadi tugas pekerjaan rumah yang sangat sederhana:

  • Unduh AutoIt v3 .

  • Buat file ByeByeTopMost.au3 yang berisi:

    While 1
        $var = WinList()
    
        For $i = 1 to $var[0][0]
            WinSetOnTop($var[$i][1], "", 0)
        Next
    
        Sleep(5000)
    WEnd
    
  • Tempatkan di folder start-up Anda dan jalankan atau reboot.

Atau jika Anda sama sekali tidak menyukai pekerjaan rumah, unduh file zip yang saya buat ini.

Selamat bersenang-senang... :-)

PS: Anda tidak dapat menggunakan fitur "Selalu Di Atas" dalam kasus terakhir ini. Baik mengatasi masalah atau mengatasi ... ;-)

Tamara Wijsman
sumber
Saya suka jawaban ini.
Supercereal
SetWindowPos tidak menyala ketika masalah terjadi ... Saya juga merasa sangat ofensif bahwa Anda mengganti nama pertanyaan sepenuhnya dan kemudian menulis jawaban untuk itu.
GateKiller
1
@GateKiller: Bagaimana itu menyinggung? Ini membantu Anda mendapatkan jawaban yang lebih baik. Ini juga deskripsi yang lebih tepat untuk masalah Anda ("jendela di depan" umumnya dikenal sebagai "selalu ada di atas") dan sekarang Anda telah mengubah judul menjadi Google Chrome setelah menerima jawaban . Bagaimanapun, Anda selalu bebas untuk mengembalikan dan saya senang masalah Anda diselesaikan, selanjutnya SetWindowPos akan memecat sebelum masalah terjadi atau prosedur serupa lainnya yang memiliki efek yang sama dapat disebut ... :-)
Tamara Wijsman
4

Untuk menonaktifkan ini, Anda harus menekan

ALT + Spasi + C

alt+ space+c

Setelah menekan tombol-tombol ini browser Google chrome akan menutup secara otomatis. Kemudian mulai lagi peramban Google chrome.

Masalahnya akan dipecahkan selamanya :)

Firefog
sumber
ALT + Spasi + C menutup browser saya dan memperbaiki masalahnya. Saya harus kembali ke sini untuk mendukung jawaban Anda.
Oscar Fraxedas
1
Ini adalah satu-satunya hal yang menyelesaikan masalah saya.
ddonche
1

Punya masalah ini juga dan temukan cara untuk menghindarinya. Saya telah menginstal perangkat lunak "Selalu di Atas" .

Dan saya menggunakannya di Chrome untuk Windows, yang mengubah keadaan properti alwaysontop.

Jaime Alves
sumber
0

Salah satu perbaikan cepat adalah dengan mengklik tombol 'tampilkan desktop' dua kali di sisi paling kanan bilah tugas pada windows 7/8 / 8.1

Vnay
sumber
1
Seperti yang tertulis, jawaban Anda hanya memberikan sedikit informasi bermanfaat. Bisakah Anda mengembangkannya sedikit?
bwDraco
0

Saya memiliki masalah yang sama dan berhasil memperbaikinya dengan masuk ke "Alihkan Pengguna" di menu Mulai dan setelah masuk kembali di jendela, salut kembali pada toolbar. Tampaknya mempengaruhi semua jendela dan sementara chrome mungkin menjadi penyebabnya, itu jelas mempengaruhi seluruh sistem Windows, menunjukkan kemungkinan penyebab dari dalam Windows itu sendiri. Membuat posting ini setelah pertamaku dengan masalah ini setelah menjadi pengguna Chrome selama 5 tahun di Windows XP & 7.

Leviscus Tempris
sumber
0

Yah saya punya masalah yang sama, dan mengetuk ganda F11 tidak menyelesaikan apa pun. Tetapi saya melihat, karena saya memiliki dua jendela Google Chrome terbuka, bahwa hanya satu di antaranya yang ada di atas setiap jendela lain yang saya miliki (Steam, Notepad, dll). Saya kemudian mengambil salah satu tab yang selalu ada di atas dan membuat jendela baru dengannya dan kemudian mengambil setiap tab lainnya dari jendela atas ke yang baru. Sekarang setiap jendela muncul di atas ketika saya memilihnya, seperti biasa.

Semoga ini bisa membantu :)

Heltsuki
sumber
-3

Buka Chrome dan tekan ALT + Space + C

Gustavo
sumber
3
OP tidak menanyakan cara menutup jendela Chrome mereka.
Anthony Geoghegan mulai