Google Chrome: Завжди на верхньому базі


15

Вибачте за розпливчасту назву, але це важко пояснити, тому будьте зі мною, будь ласка.

Я використовую Windows Vista для роботи для веб-розробки, а іноді, коли я натискаю або клацнув Alt-Tab до фонового вікна, вікно отримає фокус, але воно не буде виведене на передню частину.

Для того, щоб вивести вікно спереду, я повинен натиснути межу програм (коли з'явиться курсор зміни розміру), і вікно потім перескочить на передню частину.

У мене ця проблема вже близько року, і це трапляється принаймні десяток разів на день, але це не робиться весь час - здається випадковим.

Сподіваюся, я повністю пояснив це питання (і ви це зрозуміли) і буду вдячний за будь-які конструктивні відповіді чи коментарі для вирішення цієї проблеми.

Приклад: Якщо я переключаю клавішу Alt-Tab з Google Chrome на Блокнот і ця проблема виникає випадковим чином, Google Chrome залишиться перед Блокнотом, однак я зможу вводити текст у Блокнот, поки вікно позаду Google Chrome. Якщо натиснути на область вмісту Блокнота, це не призведе до передньої панелі, але натискання межі вікна буде.

Відео-іспит

http://vimeo.com/19388998

У цьому відео я перейшов від Google Chome до UltraEdit, а хром залишився шрифтом, але, як ви бачите, я все ще можу ввести UltraEdit.

Я починаю вірити, що це може бути помилка в Google Chrome, тому я продовжуватиму спостерігати, чи це між іншими програмами.


Чи можете ви встановити комп’ютер на меншу роздільну здатність (HD 720p або менше) і завантажити відео, яке показує проблему за допомогою Jing . Крім того, спробуйте вимкнути програми, які автоматично починаються з Autoruns та ShellExView, щоб побачити, чи спричиняє цю поведінку непрацююча програма або розширення Explorer, слідкуйте за тим, що ви відключите, хоча ...
Tamara Wijsman

Чи трапляється це, коли перед вами відкрита певна програма і намагається змінити вкладку від цього? Може статися так, що це вікно було налаштовано завжди на вершину. У мене виникло це питання на деякий час, коли моє вікно mIRC було налаштоване завжди бути зверху.
Віндос

Я також стикаюся з цією проблемою (за допомогою Windows 7). Хоча я точно не знаю природу проблеми, я думаю, що це відбувається, коли я відкрив свій веб-браузер і на одному з веб-сайтів, які я відкрив, є флеш-контент. Сказавши це, я, схоже, не можу це повторити.
happy_soil

Тепер, коли я думаю про це, у мене з’явилися деякі програми, що працюють у фоновому режимі, які встановлені як «Завжди вгорі», тому я думаю, що це може заважати фокусуванню вікна.
happy_soil

@happy_soil: Ви можете поставити це як відповідь. Запуск вікна "Завжди вгорі" є хорошим поясненням такої поведінки.
harrymc

Відповіді:


6

Що стосується Chrome, це відома проблема: поведінка вікна Chrome завжди у верхній частині

Швидке виправлення цієї проблеми полягає у виборі вікна Chrome і двічі натисніть F11.


Дякуємо за посилання на цю помилку, однак це не проблема у мене. Моя проблема пов'язана з вікнами додатків, а не з панеллю завдань. На цьому етапі я не можу підтвердити, чи це проблема викликає Chrome.
GateKiller

Вибачте, якщо попередній коментар пролунав грубо. Це був не мій намір. Я ціную ваш внесок :)
GateKiller

Ця помилка, мабуть, впливає і на вкладку alt, і на панель завдань. Початковий звіт про помилку був для панелі завдань, але коментар 41 також зазначив його вплив на вкладку alt. (і ваш коментар зовсім не звучав грубо.)
harrymc

Після подальшого читання та тестування я погоджуюся, що Google Chrome для Windows справді є проблемою. До вашої відповіді я додав обхідні шляхи, поки ми чекаємо, коли Google виправить проблему.
GateKiller

1
Я в Windows 10. Ця проблема все ще є, і F11 двічі теж не працює.
Росді

4

На що це схоже?

Існує лише одна поведінка, близька до цієї проблеми, і це була б поведінка завжди на вершині .
Якийсь код, можливо, з самої програми може бути зміна властивості вашого вікна ...

Як встановлюється вікно "Завжди вгорі"?

Як створити форму, яка завжди залишається вгорі, показує нам, що SetWindowPos викликається з другим параметром, встановленим на HWND_TOPMOST , це негайно ставить його вгорі і зберігає таким чином.

Після швидкої роботи Google цей результат виявить, що User32.dll є власником цієї функції.

Хто встановлює моє вікно "Завжди вгорі"?

Тепер, коли ми знаємо, як називається функція, ми хочемо знати, коли ця функція викликається. Це вимагає від нас слідів стеку та їх аналізу, тоді як Windows Performance Toolkit може це зробити, ми можемо бути дуже щасливі, що Rohitab Batra написав дивовижний Api Monitor .

Вибачте, але це важке домашнє завдання:

  • Завантажте API Monitor та встановіть його.
  • Відкрийте монітор API як адміністратор , якщо у вас 64 біт, вам потрібно зробити це двічі.
  • Переконайтеся, що в фільтрі API Capture ліворуч нічого не встановлено .
  • Там же змініть Усі модулі у верхній частині цього діалогу на 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)

Виклик на SetWindowPos з HWND_BOTTOM | 0x00000000fffffffe ( -2 + 1 = -1 = HWND_TOPMOST ) - це те, що ми шукаємо, і процес, який виконує цей виклик, є тим, кого ви повинні звинуватити у своїй проблемі.

Я здаюсь ... Як я можу виправити свою проблему "Завжди на вершині"?

Бойовий вогонь з вогнем, ми будемо встановлювати всі вікна на HWND_NOTOPMOST .

Yikes, програмування! Але це також легко зробити за допомогою сценаріїв ...

Отже, дуже просте домашнє завдання:

  • Завантажте AutoIt v3 .

  • Створіть файл ByeByeTopMost.au3, який містить:

    While 1
        $var = WinList()
    
        For $i = 1 to $var[0][0]
            WinSetOnTop($var[$i][1], "", 0)
        Next
    
        Sleep(5000)
    WEnd
    
  • Помістіть його у свою стартову папку та запустіть її чи перезавантажте.

Або якщо вам зовсім не подобається домашнє завдання, завантажте цей створений мною поштовий файл .

Повеселіться ... :-)

PS: Ви не можете використовувати функцію "Завжди вгорі" в останньому випадку. Або усунення несправностей, або вирішення проблем ... ;-)


Мені подобається ця відповідь.
Суперсереальний

SetWindowPos не спрацьовує, коли виникає проблема ... Я також вважаю дуже образливим, що ви перейменовуєте питання повністю, а потім пишете відповідь на нього.
GateKiller

1
@GateKiller: Як це образливо? Це допомагає вам отримувати кращі відповіді. Це також більш правильний опис вашої проблеми (оскільки "вікна спереду" зазвичай називають "завжди вгорі"), і тепер ви змінили назву на Google Chrome, отримавши відповіді . У будь-якому випадку, ви завжди вільні до відкату, і я радий, що ви вирішили вашу проблему, крім того, SetWindowPos запуститься до появи проблеми або іншої подібної процедури, яка має той же ефект, може бути викликана ... :-)
Tamara Wijsman

4

Щоб вимкнути це, ви повинні натиснути

ALT + Пробіл + C

alt+ space+c

Після натискання цих кнопок браузер Google Chrome автоматично закриється. Потім запустіть знову браузер Google chrome.

Проблема буде вирішена назавжди :)


ALT + Space + C закрив веб-переглядач і усунув проблему. Мені довелося повернутися сюди, щоб підтвердити вашу відповідь.
Оскар Фраксідас

1
Це єдине, що вирішило моє питання.
ddonche


0

Одне швидке виправлення - натиснути кнопку "показати робочий стіл" двічі в правій частині панелі завдань у Windows 7/8 / 8.1


1
Як написано, ваша відповідь надає дуже мало корисної інформації. Чи можете ви трохи розширити його?
bwDraco

0

У мене була ця сама проблема і вдалося її виправити, перейшовши до "Переключити користувача" в меню "Пуск" і після входу в Windows знову знов поважав панель інструментів. Здавалося, він впливає на всі вікна, і хоч хром може бути причиною, але, безумовно, це впливає на систему Windows у всьому світі, що говорить про можливого винуватця із самого Windows. Запис цієї публікації після моєї першої роботи з проблемою після того, як протягом 5 років користувач Chrome користувався ОС Windows XP та 7.


0

Ну, у мене була та сама проблема, і подвійне натискання на F11 нічого не вирішило. Але я побачив, оскільки у мене було відкрито два вікна Google Chrome, що лише одне з них було поверх кожного іншого у мене вікна (Steam, Notepad тощо). Потім я взяв один із вкладок, які завжди знаходяться вгорі, і зробив нове вікно з ним, а потім переніс усі інші вкладки від верхнього вікна до нового. Тепер кожне вікно з’являється вгорі, коли я вибираю його, як звичайне.

Сподіваюся, це може допомогти :)


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.