Меню Рубрики

Окно на передний план windows 7

Как переместить окно на передний план?


Автор: Александр Шаргин


Версия текста: 1.0

Многие знают, что для перемещения окна на передний план существует функция SetForegroundWindow из Win32 API (в MFC ей соответствует обёртка CWnd::SetForegroundWindow). Она отлично работала под Windows 95 и Window NT. Но потом парни из Майкрософт провозгласили новый принцип: «Никто кроме пользователя не имеет право выдвигать окно на передний план». И хотя их собственные продукты продолжают делать это при необходимости, функция SetForegroundWindow перестала работать, как раньше. Теперь только активный процесс (foreground process) может переместить окно на передний план с использовании этой функции, а окно фонового процесса начнёт «мерцать» на панели задач, чтобы привлечь внимание пользователя.

В общем случае не рекомендуется нарушать правила работы пользовательского интерфейса, предписанные Микрософт. Как правило, окно, выпрыгивающее из ниоткуда, только раздражает пользователя. Тем не менее, в некоторых приложениях бывает необходимо добиться именно такого поведения. Рассмотрим несколько способов достижения требуемого.

ПРИМЕЧАНИЕ
Микрософт постоянно занимается «затыканием дыр в своей обороне», и всё больше известных способов отказывает с выходом новых версий Windows.

Способ 1

Этот способ подразумевает использование недокументированной функции SwitchToThisWindow, описание которой дал Ашот Оганесян (подробности можно найти здесь). Эта функция получает два параметра: первый — дескриптор окна, а второй — TRUE или FALSE, в зависимости от того, нужно ли восстановить минимизированное окно.

SwitchToThisWindow входит в user32.dll, но не включена в библиотеку импорта, поэтому необходимо получить её адрес с помощью GetProcAddress. Предварительно нужно загрузить библиотеку user32.dll или (если вы уверены, что она уже загружена — в большинстве случаев она загружается при запуске приложения) получить её дескриптор с помощью GetModuleHandle. Например:

К сожалению, практика показывает, что последних версиях Windows 98/2000 эта функция ведёт себя аналогично SetForegroundWindow.

Следующие два способа описаны на сайте Боба Мура, одного из Microsoft MVP.

Способ 2

В Windows 98/2000 появился новый системный параметр FOREGROUNDLOCKTIMEOUT. Он задаёт интервал времени, который должен пройти с момента последнего пользовательского ввода, прежде чем приложение сможет выдвинуть своё окно на передний план. По истечении этого интервала SetForegroundWindow работает, как нам требуется. Микрософт имеет в виду, что окно не может «выпрыгнуть», когда пользователь набирает что-то на клавиатуре, но может на законных основаниях появиться, если он просто сидит и наблюдает происходящее на экране.

Параметр FOREGROUNDLOCKTIMEOUT можно изменить программно, для этого предназначена функция SystemParametersInfo. А значит, мы можем установить интервал в ноль, вызвать SetForegroundWindow, а затем восстановить исходное значение интервала. Вот фрагмент кода, который выполняет задуманное.

Константы SPI_*FOREGROUNDLOCKTIMEOUT описаны в windows.h, но будут доступны только при компиляции под Windows 98/2000. Другими словами, должен быть задан макрос:

Если этого делать не хочется (или если вы используете устаревшие версии заголовков), вы можете описать необходимые константы прямо в программе, включив в код следующие макросы:

Описанный метод успешно работает под Windows 98, но отказывает под Windows 2000.

Способ 3

Как утверждает документация, SetForegroundWindow работает как нам нужно, только если вызывающий её процесс является активным. А активен тот процесс, чей поток обрабатывает пользовательский ввод. Оказывается, наш процесс может «прикинуться» активным, подключив свой поток к обработке пользовательского ввода. Это осуществляется при помощи функции AttachThreadInput. После вызова SetForegroundWindow можно будет отключиться от чужого потока, используя ту же функцию (но передавая в качестве третьего параметра FALSE, а не TRUE).

Реализация этой идеи выглядит так.

Моя практика показывает, что описанный метод успешно работает как под Windows 98/Me, так и под Windows 2000.

Источник

Управление окнами в Windows

Кроме сворачивания, разворачивания и закрытия окон, рассмотренных ранее, операционная система Windows позволяет их перемещать, менять размеры, упорядочивать и переключаться между ними.

Перемещение окон

Для перемещения окна в любое удобное место на рабочем столе, подведите курсор мышки на строку оконного заголовка, нажмите левую кнопку мыши и, не отпуская ее, передвиньте окно в нужное вам место. Другой менее распространенный способ – это вызвать контекстное меню щелчком правой кнопки мыши на строке заголовка окна, выбрать пункт меню «переместить», курсор мыши примет вид четерехнаправленной стрелки.

Курсорными кнопками клавиатуры переместить окно в нужную область рабочего стола и нажать клавишу Enter.

Как видно, данный способ не очень рационален из-за большого количества дополнительных действий. Самое простое – это «зацепить мышкой» окно и передвинуть его. Просто и быстро.

Изменение размеров окон

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

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

Упорядочивание окон

Когда на рабочем столе открыто много окошек, то возникает необходимость их упорядочить, чтобы не возникло путаницы. Для этого опустите курсор в панель задач, вызовите контекстное меню щелчок правой кнопки мыши, в котором выберите один из пунктов (применимо к Windows 7, как самой распространенной системе на момент написания статьи):

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

Переключение между окнами

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

  • щелкнуть (кликнуть) левой кнопкой мыши на строке заголовка нужного окна;
  • кликнуть левой кнопкой мыши на иконке документа или программы в панели задач;
  • с помощью клавиатурной комбинации «ALT+TAB», когда при зажатой клавише «ALT», клавишей « TAB» перебираются все окна в поиске необходимого;
  • с помощью комбинации клавиш «ALT+ESC» переключает между открытыми окнами.

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

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

Поделиться.

Еще по теме:

  • Как сворачивать, разворачивать и закрывать окна в Windows? Каждое окно имеет элементы, которые позволяют им управлять. Это кнопки, выполненные в виде черточки, квадратика и диагонального крестика. Они находятся в самом правом углу, вверху окна. […]
  • Окна в операционной системе Windows Название операционной системы Windows в переводе с английского означает «окна». Данное название отражает всю суть этой операционной системы, т.к. абсолютно вся работа здесь происходит в […]
  • Как установить Windows на компьютер Собранный настольный компьютер или ноутбук — это еще не полноценная система, с которой можно работать. На каждое подобное устройство, имеющее все аппаратные составляющие, необходимо […]
  • Что такое Microsoft Store? Microsoft Store был запущен в качестве основного магазина приложений в Windows 8, но быстро стал основной платформой для распространения всех видов контента и для Windows 10. Microsoft […]
  • Удаленный помощник Windows Удаленный помощник в Windows помогает компьютерным неофитам в трудную минуту. Просто обратитесь к нему, и опытный пользователь, находящийся за тысячи километров от вас, сможет подключиться […]

Один комментарий

Что нужно сделать, чтобы при попытке перемещения окна перемещалось все окно, а не его рамка, У меня только после отпускания левой кнопки перемещается содержимое окна?

Источник

Простые программы, чтобы сделать окно поверх всех окон

У пользователей ПК иногда появляется необходимость закрепить окно какой-либо программы поверх всех остальных. Это может понабиться во многих случаях, например, если нужно смотреть видео-урок и повторять показанные действия на компьютере; это очень удобно, если нужно вести какие-либо расчёты на калькуляторе; можно использовать для визуального сравнения каких-либо элементов и другое.

В общем, если вы попали на эту страницу, то вы знаете, зачем вам это нужно. Здесь я покажу, какие существуют программы программы, чтобы сделать окно поверх всех окон. Даю несколько вариантов и вы выберите то, что понравится вам.

Desk Pins

Первый экземпляр — простой инструмент Desk Pins. Установите на свой компьютер, а потом запустите (на рабочем столе ярлыка не будет, поэтому найдите её в папке Desk Pins в пуске).

После запуска иконка программы появится в около часов внизу справа. Нажмите на неё мышкой и курсор превратится в канцелярскую кнопку. Этим курсором просто щёлкните на том окне, которое нужно сделать поверх всех, и на нём появится иконка кнопки, свидетельствующая о закреплении.

Программа Desk Pins.

Чтобы убрать закрепление, нужно навести мышку на эту канцелярскую кнопку и нажать на крестик. Либо можно нажать на иконку в трее правой кнопкой мышки, а потом на пункт «Remove all pins».

А если нажать «Options», то можно увидеть несколько настроек.

Настройки Desk pins.

Turbotop

Маленький, лёгкий и очень простой инструмент. Установите на компьютер и запустите. Ярлык образуется только в пуске, по умолчанию. После запуска около часов в трее появится иконка.

Чтобы сделать окно поверх всех окон нажмите на иконку TurboTop и вы увидите список развёрнутых приложений. Нажмите на нужную строку, чтобы зафиксировать запущенную программу. Можно выбрать несколько.

Чтобы снять закрепление, надо нажать ещё раз, чтобы убралась галочка.

Pin me!

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

Кликнув на иконку можно настроить множество опций для каждого открытого окна по отдельности.

  • Windows position. Позиция окна, в том числе и поверх всего.
  • Windows transperency. Прозрачность — это очень удобно, если сделать какое-либо приложение поверх всех, а потом добавить ему немного прозрачности.
  • Windows capture. Создание скриншота.
  • Windows information. Подробнейшая информация о том или ином развёрнутом приложении.

Кроме этого есть большое количество опций в пункте «Tools menu».

Возможности программы PinMe!

Программы, которые можно разместить поверх всех встроенными средствами

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

Название программы Как сделать поверх всех
Плеер VLC Пункт «Видео», подпункт «Поверх всех окон».
Плеер MPC Пункт «Вид», подпункт «Всегда наверху».
Плеер Windows Media Player Пункт «Упорядочить», подпункт «Параметры», опция «Отображать проигрыватель поверх остальных окон».
Плеер AIMP В интерфейсе по умолчанию есть кнопка с иконкой в виде булавки.
Itunes Вкладка «Дополнения» в настройках, опция «Отображать мини-плеер поверх прочих окон».

Выводы

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

Перед тем, как выбрать инструмент, посмотрите, нет ли среди возможностей программы, которую нужно зафиксировать, этой встроенной функции. Если есть, то лучше использовать её.

Если же нужно, всё-таки, применить сторонние варианты, то остановитесь на Desk Pins или Turbotop, если нужна простота и лаконичность; или на Pin me! если нужно чуть больше возможностей и функций.

Похожие статьи:

Portable — это такие версии программ, которые можно запускать без установки на компьютер. Для использования…

Пользуясь каким-либо девайсом, нам часто надоедает один и тот же интерфейс, и хочется что-то изменить.…

Portable — это такие версии программ, которые можно запускать без установки на компьютер. Для использования…

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Окно конфигурация системы windows 7
  • Окно безопасность windows как отключить
  • Окно bios windows 7
  • Окна перемещаются рывками windows 7
  • Окна загрузки для windows 7