«Показать рабочий стол» иногда устанавливает окно «всегда поверх остальных»

«Показать рабочий стол» иногда устанавливает окно «всегда поверх остальных»

Не беспокойтесь, это не очередной вопрос «куда делась моя кнопка «Показать рабочий стол»?».

Что я обнаружил в Windows 7, когда вы используете функцию «Показать рабочий стол» (я предпочитаю сочетание клавиш ⊞ Win+ D), а затем возвращаете все окна обратно, снова используя ее, некоторые окна ведут себя так, как будто они приклеены к передней части z-порядка. Это означает, скажем, что у меня открыты окна AB и C с фокусом на A, я дважды нажимаю ⊞ Win+ D, и теперь может случиться так, что если я затем захочу переключиться на B или C, либо с помощью Alt+ Tab, либо выбрав их на панели задач, панель задач покажет подсветку, но A останется видимым (и пригодным для использования, это не просто проблема рендеринга) на переднем плане.

Представьте себе следующую ситуацию, когда все три окна расположены каскадом и перекрываются:

А (фокус)
Б
В

-> ⊞ Win+D

Рабочий стол (фокус)

-> ⊞ Win+D

А (фокус)
Б
В

-> нажмите C на панели задач

А
С (фокус)
Б

-> нажмите B на панели задач

А
Б (фокус)
С

И т. д. Фокус означает фактический фокус ввода, т. е. во второй ситуации любой ввод с клавиатуры отправляется в окно B, в то время как окно A находится на переднем плане.

Неважно, какое приложение; в моем текущем случае экземпляр Outlook и экземпляр Explorer зависли, в то время как второй экземпляр Explorer и экземпляр Firefox ведут себя нормально. Это должно показать, что эта проблема может возникнуть даже между несколькими экземплярами одного и того же приложения, и что нет никаких замысловатых приложений, которые любят притворяться, что они являются самой важной программой и внутренне заставляют "всегда быть сверху".

Повторное отображение и скрытие рабочего стола не помогает; в худшем случае другое окно может оказаться "приклеенным к верху z-порядка". Между ними я могу легко переключаться, но для того, чтобы получить окно, которое все еще ведет себя нормально сверху, мне приходится вручную минимизировать проблемные окна.

Похоже, единственное лекарство на данный момент — закрыть проблемные окна, ничего другого, что помогло бы, я не нашел.

Может ли быть, что в Windows 7 есть ошибка, которая может привести кВСЕГДА НА ВЕРШИНЕфлаг на некоторых окнах при восстановлении из «Показать рабочий стол», или я что-то делаю не так?

Больше информации:

⊞ Win+ dпроблема легко воспроизводится на Win7-64bit-Ultimate.

Затронутые окна (любой программы) кажутся помещенными в отдельную группу "Z". Вы можете поместить несколько/много окон в это состояние "поверх всех окон", окна в затронутом состоянии будут нормально функционировать по отношению друг к другу, за исключением:

  • Группа в целом всегда находится поверх любого незатронутого окна.
  • Вся группа находится перед панелью задач.
  • Вся группа не реагирует на (контекст на панели задач) «каскадные окна» или подобные команды.

Тот факт, что затронутые окна находятся поверх панели задач и в остальном функционируют как «специальные окна», показывает, что Windows 7 должна иметь скрытую «функцию» always-on-top, которая применяется с функцией показа рабочего стола. Похоже, что эта функция помещает окна в состояние суперокна, которое находится поверх панели задач (обычная группа остается позади панели задач). Когда вы щелкаете меню «Пуск» или контекстное меню панели задач, меню «Пуск»/панель задач выходит на передний план группы always-on-top, однако это не возвращает затронутые окна обратно, а только временно захватывает их, пока вы не переключитесь на что-то другое, нежели меню «Пуск»/панель задач.

Это ключ к поиску ответа. Как заставить Windows отменить назначение специального суперстатуса или не выполнять назначение в первую очередь?

Еще больше информации от другого пользователя: Кажется, это было устранено закрытием всех окон и перезапуском. Сначала я не мог воспроизвести ошибку, но после открытия всех рабочих окон я действительно воспроизвел ее в любом окне.

Я почти думаю, что это может быть инициализировано чем-то, что связано с несколькими окнами Chrome, и тогда проблема с показом рабочего стола возникнет, как только она появится в одном окне. Это произошло потому, что: после того, как я еще немного повозился с хромированным хранителем сеанса (session buddy) и восстановил сеансы и получил суперсостояние, я восстановил и закрыл окно, в котором я был, и теперь я снова в том месте, где я не могу воспроизвести ошибку, даже в моей «рабочей среде» с примерно 35 вкладками Chrome в двух окнах, плюс другие программы, расположения файлов, удаленные рабочие столы и второй профиль Chrome с еще дюжиной вкладок.

Итак, вернемся к исходной точке и поиску истинного зачинщика феномена сверхгосударства.

Как только у вас действительно возникнет проблема с супер-состоянием, будет воспроизведено следующее: Хорошо, я делаю это по мере ввода текста:

Откройте Chrome (чтобы просмотреть этот сайт), затем Блокнот, затем Калькулятор (может быть любое окно, но в целях демонстрации следуйте за мной)

Окна должны работать нормально, перекрывая друг друга так, чтобы вы могли видеть края всех окон, а Z-порядок (спереди назад) следующий: браузер сверху, затем калькулятор, затем Блокнот (вы должны видеть часть фоновых окон).

Теперь, когда браузер находится сверху, нажмите win+d, затем снова win+d.

Нажмите на Калькулятор, затем на браузер, теперь ваш браузер застрял на переднем плане. Нажатие на блокнот перенесет фокус на блокнот, и он будет перед калькулятором, но останется позади браузера, так как ваш браузер находится в "суперсостоянии". (многие варианты переключения фокуса после возврата из win+d создают проблему, за исключением щелчка по рабочему столу, я также заметил, что не мог перевести калькулятор в суперсостояние, если он не перекрывал мой браузер Chrome).

Опять же, это не сработает, пока хотя бы одно из ваших окон не будет затронуто.

Мы до сих пор не знаем, как получить первое окно в Супергосударство, знаем только последующие.

решение1

Недавно столкнулся с этой проблемой. Не уверен, как это началось, но мне удалось перевести окна в состояние "суперокна", дважды нажав ⊞ win + d и щелкнув по другому окну. Я собирался попробовать сочетание клавиш Ctrl + Shift + Esc , чтобы открыть диспетчер задач, но вместо этого нажал Ctrl + Alt + Esc, и окно вернулось в нормальное состояние. Мне удалось успешно вернуть все окна в нормальное состояние, используя последовательность клавиш для каждого окна, и ⊞ win + d больше не переводит окна в состояние "суперокна". Надеюсь, это поможет.

решение2

Два обходных пути:

Я использую Win+D. Проблему легко воспроизвести, Win7-64bit-Ultimate.

Обходной путь первый Поднимите все окна до суперсостояния, чтобы они нормально взаимодействовали друг с другом. Проблема с этим обходным путем заключается в том, что новые окна будут по-прежнему открываться за всеми вашими окнами суперсостояния, что может быть очень раздражающим, если пытаться найти, если у вас много окон и/или много мониторов.

Обходной путь два Другое полурешение — закрыть процесс и открыть его снова. Новое окно будет в нормальном состоянии, но проблема может повториться, если я использую Win+d, что может привести к большому количеству закрытий и повторных открытий десятков окон, чтобы избежать проблемы.

решение3

Я использую "Показать рабочий стол" как команду кнопки мыши и заметил то же самое, что и вы. Иногда некоторые окна, если на них сфокусироваться при нажатии кнопки "Показать рабочий стол", а затем после повторного нажатия кнопки "Показать рабочий стол" и выполнения обратной команды, будут вести себя как окна "всегда поверх всех окон".

Я заметил это с Internet Explorer, Windows Explorer и OUtlook. Я использую Windows 7, Ultimate, x64. Нет решения, кроме как закрыть и снова открыть окно для меня.

Однако мне интересно намеренно выполнить эту команду без запуска стороннего программного обеспечения из системного трея.

РЕДАКТИРОВАТЬ 29.09.11

В дополнение к моему первоначальному комментарию, я нашел решение/обходной путь для этой проблемы - но это решение специфично для моей системы, потому что я использую UltraMon, и вам придется установить эту программу, чтобы это сработало для вас. Кроме того, это должна быть версия UltraMon 3.1.0 или более поздняя. После загрузки и установки программного обеспечения перейдите наhttp://www.realtimesoft.com/ultramon/scripts/и загрузите скрипт "Always on Top". Это файл .vbs, который выполняет эту функцию:

_Set wnd = CreateObject("UltraMon.Window")
If wnd.GetForegroundWindow() = True Then
    If wnd.AlwaysOnTop = True Then
        wnd.AlwaysOnTop = False
    Else
        wnd.AlwaysOnTop = True
    End If
    wnd.ApplyChanges 0
End If_

Затем откройте UltraMon Options и перейдите на вкладку Hotkeys, выберите "Run application or script" и нажмите Add Hotkey. Откроется модальное диалоговое окно, в котором вам нужно ввести клавиатурную подсказку (комбинацию), которую вы хотите использовать, нацельтесь на скрипт, который мы скачали ранее, а затем нажмите ok. Теперь у вас есть комбинация горячих клавиш, которая будет переключаться между включением и отключением для значения Always_on_Top. Поэтому, когда ошибка возникает во время показа рабочего стола или отмены показа рабочего стола, у нас теперь есть быстрое исправление с помощью клавиатуры. И как я уже прокомментировал выше, если вы хотите, чтобы окна были намеренно принудительно перемещены на передний план, что иногда может быть полезно, теперь у вас есть возможность сделать это.

Это работает для меня, потому что я держу UltraMon открытым все время. Это отличная программа, но многие функции уже были покрыты моей видеокартой, поэтому я подумывал удалить ее вообще, но теперь она гарантированно займет свое место на моем компьютере с этой ценной функцией.

И если у кого-то есть какие-либо соображения по поводу скрипта выше и можно ли его применить к активному окну без необходимости загрузки Ultramon, пожалуйста, не стесняйтесь внести свой вклад в мой ответ. Спасибо.

решение4

Я обнаружил, что это проблема с Nvidia WMI Provider. У меня было два запущенных экземпляра (один был 32-битной версией). Я остановил 32-битную версию, и проблема исчезла.

Связанный контент