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


36

Не беспокойтесь, не вопрос "куда делась кнопка моего рабочего стола?"

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

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

A (фокус)
B
C

-> ⊞ Win+D

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

-> ⊞ Win+D

A (фокус)
B
C

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

A
C (фокус)
B

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

A
B (фокус)
C

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

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

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

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

Может ли быть так, что в Windows 7 есть ошибка, которая может вызвать флаг ALWAYS_ON_TOP для некоторых окон при восстановлении из «Показать рабочий стол», или я делаю что-то не так?

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

⊞ Win+ dвыпуск, легко тиражируемый на Win7-64bit-Ultimate.

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

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

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

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

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

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

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

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

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

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

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

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

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

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


Спасибо за редактирование, Гарет. Как сделать эти значки клавиш вместо их имен? Я полагаю, вы не включали изображения вручную, не так ли?
Мефане

1
имя ключа окружено <kbd> </ kbd>
Gaff

Ответы:


49

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


3
Спасибо. Это должен быть принятый ответ. Я не знаю, что на самом деле делает C + A + E, но это действительно решает эту очень раздражающую проблему без необходимости перетаскивать окна вокруг или закрывать приложения.
Каспер

1
Это помогает временно, но проблема повторяется для меня через несколько минут, к сожалению.
Скотт

3
Ctrl + Alt + Esc, кажется, работает для меня тоже. Я только начал испытывать аналогичную проблему с моим рабочим столом 8.1 Ent на прошлой неделе. Windows из любого приложения «зависнет» на фоне окон других приложений. Я мог бы перемещать фоновое окно и работать в нем, но оно все равно останется позади. Я подошел к каждому окну и нажал C + A + Esc, и это сработало. Я посмотрю, вернется ли это.
Ричард

1
Я попробовал Ctrl + Alt + Esc, когда прочитал его на другом веб-сайте, но не повезло, я попробовал это здесь - попал еще 3-4 раза, наконец, сделал это .. не знаю, что здесь происходит.
Чарли Винн

1
Это все еще проблема в Windows 10 (фактически единственное место, где я испытал это - и с Internet Explorer и с Firefox ... хм ...); многократно переключая фокус на окно всегда сверху, затем нажимая комбинацию до тех пор, пока окно не исчезнет, ​​за другим закрепите его. Проблема в том, что у меня теперь есть контекстное меню, которое не исчезнет ...
wizzwizz4

5

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

Я использую win + D. Выпуск легко тиражируется, Win7-64bit-Ultimate.

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

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


5

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

Я заметил это с 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», перейдите на вкладку «Горячие клавиши», выберите «Запустить приложение или скрипт» и нажмите Add Hotkey. Откроется модальное диалоговое окно, в котором вы должны ввести подсказку клавиатуры (комбинацию), которую вы хотите использовать, выбрать сценарий, который мы скачали ранее, и затем нажать ok. Теперь у вас есть комбинация горячих клавиш, которая будет переключаться между включением и отключением для значения Always_on_Top. Поэтому, когда ошибка возникает во время показа рабочего стола или отмены показа рабочего стола, у нас теперь есть быстрое исправление клавиатуры. И, как я прокомментировал выше, если вы хотите, чтобы окна преднамеренно выдвигались вперед, что иногда может оказаться полезным, теперь у вас есть возможность сделать это.

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

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


Это должен быть комментарий по основному вопросу; это не ответ.
Дарт Андроид

3
Дарт Андроид, я тогда не знал, как оставить комментарий в ответ на вопрос вместо ответа, но если вы хотите получить техническую информацию об этом, Мефейн спросил, есть ли ошибка в Windows 7, и я согласился, что делюсь своим похожим опытом. Возможно, помимо указания на то, как это ошибочно, вы, возможно, могли бы указать мне правильное направление относительно того, как оставить комментарий к чьему-то вопросу, потому что в то время это было не совсем понятно. В любом случае, я редактирую свой ответ с помощью реального решения (своего рода), поэтому, пожалуйста, пересмотрите ваш (-1) голос. Спасибо.
SpewHole

1

На самом деле есть старая программа, которая может решить эту проблему, я просто не мог вспомнить ее название до сих пор. Это утилита того времени, называемая WinExplorer от Nirsoft. У него есть опция на вкладке «Размер и положение» под названием «Не устанавливать верх», которая удаляет поведение «всегда сверху» из окна. Я только что использовал его в Windows 7, чтобы исправить проблему, описанную выше, где «Показать рабочий стол» все портит. Это все еще доступно здесь: http://www.nirsoft.net/utils/winexp.html


1

Я знаю, что прошло уже почти 8 лет, но если я все еще борюсь с этой проблемой в Windows 10, конечно, есть больше людей, сталкивающихся с этой проблемой в 2019 году.

Очевидно, это как-то связано с тем, что стиль окна под названием «WS_MINIMIZEBOX» включен в окнах всегда сверху. Я думаю, что это вызывает какую-то ошибку или что-то в этом роде. Чтобы обойти эту проблему, я использовал программу AutoHotkey (кстати, отличную программу) и создал функцию «Всегда сверху», которая делает окно сверху, а также отключает этот «WS_MINIMIZEBOX».

Другими словами, вместо вас, ребята, используя оригинальную функцию «всегда наверху», где бы вы ни работали, - скажем, вы используете классическую версию медиаплеера, вместо того, чтобы использовать функцию «всегда на вершине» в классическом программном обеспечении медиаплеера, - вы будете использовать эту функцию. Скрипт, чтобы желаемое окно всегда было сверху. Я установил горячую клавишу как windows + a (если вы хотите изменить ярлык на что-то более подходящее для ваших нужд, просто посмотрите список клавиш на сайте AutoHotkey, его очень просто изменить, и вы можете установить практически любые комбинации клавиш, которые вы хотите ). Вот мой сценарий, просто сохраните его в текстовом файле, а затем измените формат файла на .ahk

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

;Better Always on Top
count = 1
#a::
If count = 1
{
WinSet, Style, -0x20000, A
Winset, Alwaysontop, , A
return
}
Else If count = 2
{
WinSet, Style, ^0x20000, Off ;WS_MINIMIZEBOX
Winset, Alwaysontop, Off
return
}
Return

1

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


0

У меня точно такая же проблема в Windows 7 время от времени. Использование моей машины становится действительно раздражающим, потому что на экране застряли окна. Я имел обыкновение перезагружать свою машину, когда это случилось, но нашел более легкий обходной путь

Что я делаю, это чтобы завершить процесс проводника и запустить его снова. Я делаю следующее:

  1. Откройте диспетчер задач (вы можете использовать ярлык Crtl + Shift + Esc).
  2. Нажмите на вкладку «Процессы» и найдите вызываемый процесс "explorer".
  3. Завершите "explorer"процесс, щелкнув правой кнопкой мыши и выбрав End Process. Это закроет все открытые папки, все остальные программы останутся открытыми.
  4. Все еще в вашем диспетчере задач, нажмите Fileи выберите New Task(Run...).
  5. Введите explorerв поле ввода и нажмите Ok. Это снова запустит проводник.

Липкие окна должны исчезнуть.


1
Это не работает для меня на Win7 64-bit
JustinJDavies

0

В windows 7 перейдите в Панель управления >> Удобство доступа >> Центр удобства доступа >> Прокрутите вниз, чтобы сделать мышь проще в использовании >> Прокрутите вниз, чтобы упростить управление Windows >> Снимите флажок «Активировать». окно, наведя на него мышкой ". Теперь, когда вы откроете новое окно, это окно останется сверху и позволит вам выбрать его без его исчезновения.


Нет ... звучит как другая проблема.
jan-glx

0

В моем случае эта ошибка появилась, когда я смотрел фильмы в Daum PotPlayer. У меня в проигрывателе включено «всегда сверху», и когда я минимизирую все окна с помощью горячей клавиши Win + D и восстанавливаю их таким же образом, какая-то активная (в фокусе) программа становится поверх других. Я отключил "всегда сверху" в плеере и ошибка исчезла ... по крайней мере, на данный момент.


0

Многие описывают проблему, которая беспокоила меня уже некоторое время, но не много полезных исправлений. Тем не менее, я прошел и очистил кучу приложений процессов / фонов, настроенных для запуска с Windows. Я не проверял их один за другим, чтобы определить виновника, но пока проблема кажется решенной. Я могу Alt + Tab через несколько открытых окон без каких-либо из них застрял на вершине.

Итак, это была бы моя рекомендация: довести ваши стартап приложения до гола. Кажется вероятным, что что-то там вызывает проблему.

WIN7: WIN + R, вкладка автозагрузки, отключите все, что, по вашему мнению, можно прожить без запуска при запуске.

WIN10 - Ctrl + Alt + Del, mgr задачи, вкладка запуска, снова отключите все, что вы можете

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.