Как сделать окно всегда активным

Обновлено: 15.05.2024

Я проверил предыдущий вопрос здесь, но, к сожалению:

  1. DeskPin в основном не работает с Windows 8, и все еще не работает в Windows 10 не обновлялся с 2002 года и, похоже, не работает в Windows 10
  2. AutoHotKey и AlwaysOnTopMaker требует клавиатуры, нет визуальной индикации того, что окно помечено как всегда сверху или нет

Я нашел программу под названием TurboTop, которая может делать это из системного трея, но в Windows 10 TurboTop перечисляет все программы, которые даже не работают в своем списке, дважды. Это бардак.

WindowPinner делает это лучше, но он все еще включает в список не запущенные программы.

Есть ли какое-либо решение, которое работает в графическом интерфейсе без использования клавиатуры, например, долгое нажатие / щелчок правой кнопкой мыши в строке заголовка и выбор «Всегда сверху»? Если вы привыкли к Ubuntu Linux, вы знаете эту функциональность.

Dexpot делает это, он позволяет "Умное использование заголовков":

Строка заголовка, а также кнопки «Свернуть», «Развернуть» и «Закрыть» могут быть назначены с помощью других функций (Роллинг вверх, Свернуть в системный трей и т.д.).

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

Загрузите установщик AlwaysOnTop и установите его (выберите последний выпуск). Запустите приложение из Пуск -> Все программы -> AlwaysOnTop. Он сидит в системном трее. Нажмите на иконку в трее, нажмите "AlwaysOnTop", а затем нажмите на окно, которое вы хотите остаться сверху (курсор будет крестиком в ожидании окна).

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

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

Мне трудно доверять утилитам, загруженным с чьего-либо аккаунта Google Drive или Dropbox. Но я доверяю Нир Софер из Nirsoft. У него есть крошечное приложение под названием WinLister, где мы можем установить окно, которое будет всегда сверху. Это не очень удобно для пользователя, если вы делаете это часто, но мне только иногда нужно прикрепить окно к вершине, так что это работает для меня.

Я использую VirtuaWin уже много лет для этого. Это позволяет мне щелкнуть средней кнопкой мыши на строке заголовка любого окна, чтобы оно оставалось «всегда сверху». Отлично работает на win 10. Бесплатный, с открытым исходным кодом.

Возможно, это не совсем соответствует запросу OP, но Stick-It! является отличным вариантом для сохранения некоторых Windows поверх других.

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

Есть ли какое-либо решение, которое работает в графическом интерфейсе без использования клавиатуры, например, долгое нажатие / щелчок правой кнопкой мыши в строке заголовка и выбор «Всегда сверху»? Если вы привыкли к Ubuntu Linux, вы знаете эту функциональность.

Есть несколько функций в вашем распоряжении. Доступ к ним осуществляется из нового меню, прикрепленного к строке заголовка каждого окна. Опции меню появляются только при наведении курсора, и контейнер можно перемещать по строке заголовка.

Конфигурация компьютера
Процессор: Pentium(R) Dual-Core CPU E5200 @ 2.50GHz
Материнская плата: Gigabyte G31M-S2L
Память: DDR2 4GB
HDD: Samsung 500GB + WD 1TB
Видеокарта: NVIDIA GeForce 9600GT
Блок питания: 400W
Монитор: Asus VW222U (22")
ОС: W7Uх64 SP1
Индекс производительности Windows: 4,9 проц

Доброго времени суток, ув. форумчане! Как сделать что б окно определённой программы было всегда активным, даже в том случае если работаешь в другом окне?

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

Конфигурация компьютера
Процессор: Pentium(R) Dual-Core CPU E5200 @ 2.50GHz
Материнская плата: Gigabyte G31M-S2L
Память: DDR2 4GB
HDD: Samsung 500GB + WD 1TB
Видеокарта: NVIDIA GeForce 9600GT
Блок питания: 400W
Монитор: Asus VW222U (22")
ОС: W7Uх64 SP1
Индекс производительности Windows: 4,9 проц

Prof, активное окно — то, которое обладает фокусом, то, в которое идёт ввод.

Разворачивайте виртуальную машину, разворачивайте на ней приложение и там делайте его активным.

Prof, ты понимаешь, что если окно _активно_, то например _все_ нажатия клавиш летят именно в него и ни в одном другом окне ты не сможешь вводить никакого текста?

Нету случайно внешней проги что "имитирует" активность окна? »

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

-------
Мнение большинства людей всегда ошибочно, ибо большинство людей - идиоты.
~ Эдгар Аллан По ~

Конфигурация компьютера
Процессор: Pentium(R) Dual-Core CPU E5200 @ 2.50GHz
Материнская плата: Gigabyte G31M-S2L
Память: DDR2 4GB
HDD: Samsung 500GB + WD 1TB
Видеокарта: NVIDIA GeForce 9600GT
Блок питания: 400W
Монитор: Asus VW222U (22")
ОС: W7Uх64 SP1
Индекс производительности Windows: 4,9 проц

Доброго времени суток, ув. форумчане! Как сделать что б окно определённой программы было всегда активным, даже в том случае если работаешь в другом окне?

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

Конфигурация компьютера
Процессор: Pentium(R) Dual-Core CPU E5200 @ 2.50GHz
Материнская плата: Gigabyte G31M-S2L
Память: DDR2 4GB
HDD: Samsung 500GB + WD 1TB
Видеокарта: NVIDIA GeForce 9600GT
Блок питания: 400W
Монитор: Asus VW222U (22")
ОС: W7Uх64 SP1
Индекс производительности Windows: 4,9 проц

Prof, активное окно — то, которое обладает фокусом, то, в которое идёт ввод.

Разворачивайте виртуальную машину, разворачивайте на ней приложение и там делайте его активным.

Prof, ты понимаешь, что если окно _активно_, то например _все_ нажатия клавиш летят именно в него и ни в одном другом окне ты не сможешь вводить никакого текста?

Нету случайно внешней проги что "имитирует" активность окна? »

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

-------
Мнение большинства людей всегда ошибочно, ибо большинство людей - идиоты.
~ Эдгар Аллан По ~

Проблема такова: необходимо сделать окно ПОСТОЯННО активным с фокусом ввода клавиатуры.
Решение, думаю, только с помощью API функций

Накопал теоретическое решение на дельфе (привожу в оригинале):

h:=FindWindow(nil,'Супер-пупер прога');
if h<>0 then begin
SetForeGroundWindow(h);
ShowWindow(h, SW_SHOW);
SetActiveWindow(h);
end;
Все круто, кроме одного: после этих телодвижений "Супер-пупер прога" больше не сворачивается кнопкой "Свернуть".

Как раз мне это и надо, но на VFP.
Подскажите полный код для VFP, плиз.

Вторая проблема: выставить игнорирование нажатия клавиш, с помощью которых окно становится неактивным (Alt+Tab, leftWin, rightWin).

У меня VFP9sp1, XPsp2
Загибаюсь

Проблема такова: необходимо сделать окно ПОСТОЯННО активным с фокусом ввода клавиатуры.
Накопал теоретическое решение на дельфе (привожу в оригинале):
h:=FindWindow(nil,'Супер-пупер прога');
if h<>0 then begin
SetForeGroundWindow(h);
ShowWindow(h, SW_SHOW);
SetActiveWindow(h);
end;

Честно признаюсь, что не очень-то понимаю, как SW_SHOW - Activates the window and displays it in its current size and position.) может тебе помочь, да и SW_SHOWMAXIMIZED - Activates the window and displays it as a maximized window. или SW_MAXIMIZE - Maximizes the specified window. вроде как "разовая акция".

В первом приближении можно попробовать и "соверщенно стандартными средствами". т.е. как-нить так:

Если твой вопрос из разряда: Как предотвратить запуск нескольких экземпляров VFP приложения на одном рабочем месте, имеющих один и тот же заголовок главного окна, то что-нибудь типа:

Исправлено: MichaelD, 03.08.06 02:50

Если версия до VFP6 включительно, то определение HWND окна примерно так

Для версий от VFP7 и старше это не требуется, поскольку и у основного окна FoxPro и у любой формы можно прочитать значение HWND напрямую.

Если прога на базе основного окна FoxPro

Если прога на базе As Top-Level формы, то

Ну, а далее уже работаешь с остальными функциями по найденному HWND

Может не прваидьно высказал проблему, но окно программы должно не только постоянно быть на экране (AlwaysOnTop = .T. проблему не решает - окно остается всегда на экране, но фокус клавиатуры пропадает ), окно должно быть АКТИВНЫМ с фокусом клавиатуры при попытках переключения окна, например по нажатию Alt+Tab, leftWin, rightWin. Чтобы умники не могли выйти из окна программы (человеческий фактор).

окно должно быть АКТИВНЫМ с фокусом клавиатуры при попытках переключения окна, например по нажатию Alt+Tab, leftWin, rightWin. Чтобы умники не могли выйти из окна программы


Сурово. Лучше тогда ДОС А вообще таймер пару раз в секунду с проверкой активного окна и принудительной активизацией требуемого, если активно не оно, что-то вроде GetActiveWindow|/SetActiveWindow

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


------------------
Совершенство - это не тогда, когда нельзя
ничего прибавить, а тогда, когда нечего убавить.

Исправлено: Влад Колосов, 03.08.06 11:55

Именно терминал
Все думал как его обозвать
а задача и стоит в том чтоб уйти из под ДОСа
Пытаюсь сделать так:
свойство thisform.init:
declare integer ShowWindow in Win32API integer, integer
declare integer SetActiveWindow in Win32API integer
fHWND=thisform.HWND

thisform.timer1.interval=1000 &&(1 сек)

далее по таймеру:
timer1.timer:
ShowWindow(fHWND,sw_shownormal)

(Функция ShowWindow устанавливает состояние показа определяемого окна
SW_SHOWNORMAL - Активизирует и показывает окно. Если окно свернуто или развернуто, система восстанавливает его в первоначальном размере и позиции. Прикладная программа должна установить этот флажок при отображении окна впервые.)

При нажатии right/leftWIN окно становится неактивным и перекрывается ПУСКом, при повторном нажатии right/leftWIN возвращается в исходное состояние с фокусом. По Alt+Tab переключается на другую задачу, оставаясь на екране по AlwaysOnTop=.t.).

Данный код проблему не решает

Исправлено: m-viktor, 03.08.06 12:50

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

_screen.AlwaysOnTop =.t.
у скрина убирай все
рамку, хедер
распахивай при старте на весь экран

винды будет не видно
и никуда не кликнут

1. тогда каким образом в XP выставить невозможность запуска пользователем других програм
2. помоему проблема переключения задач не исчезнет (Alt+Tab)

> 1. тогда каким образом в XP выставить невозможность запуска пользователем других програм
через политики (policy)

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

Исправлено: m-viktor, 03.08.06 15:04

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

Может Вам просто отказаться от многозадачности?

В чем тогда смысл перехода на Win?
Плохую идею хорошим кодом не исправишь. Надо пользоваться вещами по их назначению и обучать пользователей тому же.


------------------
Совершенство - это не тогда, когда нельзя
ничего прибавить, а тогда, когда нечего убавить.

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

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

Вам нравится функция Always On Top, предоставляемая некоторыми приложениями, и вам нужна эта функция и в других приложениях? Что ж, вы можете сделать так, чтобы любое окно оставалось поверх других окон. В этом посте обсуждается ряд инструментов, которые позволяют вам это делать. Сохранение окна наверху дает множество преимуществ: вы можете продолжать выполнять свою работу, а также следить за другими окнами.

Сделайте так, чтобы окно оставалось всегда на высоте

Вот несколько бесплатных инструментов, которые помогут вам добиться этого на ПК с Windows 10/8/7:

  1. TurboTop
  2. OnTopReplica
  3. Всегда на вершине
  4. DeskPins
  5. Расширение AOT для Chrome и Firefox
  6. WindowTop
  7. PinWin
  8. PinWin — Прикрепить сверху
  9. OnTopper
  10. PinMe
  11. Окно ВверхуБольшой контроль
  12. TopMostFriend.

Давайте посмотрим на них.

1]TurboTop

Сделайте так, чтобы окно оставалось всегда на высоте

TurboTop — это снова небольшая утилита, запускаемая из системного трея. Это позволяет вам выбрать окно, которое вы хотите оставить наверху, и все. Окно будет оставаться наверху, пока вы делаете свою работу. В этом инструменте нет горячих клавиш или настроек. TurboTop очень прост в использовании и просто делает то, что говорит. Нажмите здесь скачать TurboTop.

2]OnTopReplica

OnTopReplica — отличный инструмент, который создает в реальном времени клон указанного окна с помощью эскизов DWM и библиотеки Windows Forms Aero. Вы можете создать клон, выбрав окно или указав область на экране. Вы можете легко изменить размер окна в соответствии с вашими требованиями, а также настроить несколько других параметров. Вы можете установить непрозрачность клона и даже заблокировать его положение на экране. Чтобы облегчить задачу, вы даже можете выбрать горячие клавиши для клонирования экрана, а также для отображения / скрытия клонированного окна. Нажмите здесь скачать OnTopReplica.

3]Всегда на высоте

Always On Top — это небольшая небольшая утилита, которая позволяет держать любое окно на переднем плане. Вам просто нужно скачать приложение, запустить его и нажать горячую клавишу. Always On Top не имеет каких-либо других функций визуализации как таковых, но, тем не менее, этот инструмент упрощает сохранение окон наверху. Это значительно упрощает и ускоряет выполнение всей задачи. Все, что вам нужно сделать, это выбрать окно, а затем нажать «Ctrl + Пробел» на клавиатуре, и окно останется там, как оно находится поверх всех других окон. Щелкните здесь, чтобы загрузить Always On Top.

4]DeskPins

DeskPins — еще один легкий инструмент, который может заставить любые запущенные программы оставаться на высоте других. Это доступно здесь.

5]Расширение AOT для Chrome и Firefox

АОТ

Расширение AOT, также известное как Always on Top для Google Chrome, позволяет размещать любую веб-страницу поверх всех других окон. Расширение пригодится, когда вы вручную вводите некоторые данные на веб-странице и сворачиваете, а затем увеличиваете окна — это проблема. Чтобы использовать расширение, вам необходимо включить панели из chrome: // flags. Чтобы установить веб-страницу вверху, вам просто нужно открыть веб-страницу в Google Chrome, затем щелкнуть правой кнопкой мыши и выбрать «Всегда поверх». Веб-страница откроется в новом настраиваемом окне, которое всегда будет наверху. Нажмите здесь, чтобы загрузить расширение AOT для Chrome. Аналогичное расширение также доступно для Mozilla Firefox, которое можно загрузить с здесь.

ОБНОВЛЕНИЕ: расширение AOT для Chrome прекращено. Он по-прежнему доступен для Firefox.

6]WindowTop

оконная поверхность

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

7]PinWin

PinWin — очень простое и интуитивно понятное приложение, которое позволяет сделать так, чтобы любое стороннее окно оставалось «всегда наверху». Он всегда будет отображаться поверх других окон. Имеется в наличии здесь.

8]PinWin — Прикрепить сверху

PinWin — Pin On Top — еще одно минималистичное приложение в области уведомлений Windows, которое позволяет закрепить любые окна в верхней части экрана одним щелчком мыши. Имеется в наличии здесь.

9]OnTopper

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

10]PinMe

PinMe позволяет закреплять окно Always On Top, изменять уровень прозрачности, захватывать окна и предлагать базовую статистику на вашем ПК.

11]Окно TopMost Control

TopMost Control может сделать так, чтобы окно любой программы перекрывало окна других программ. Чтобы окно всегда было сверху, у вас есть четыре варианта:

  • Выберите окно и дважды щелкните значок TopMost Control на панели задач.
  • Выберите окно и используйте сочетания клавиш Ctrl + Alt + Пробел.
  • Использовать список Windows в меню на панели задач
  • Используйте CMD.

12]TopMostFriend

Мы что-нибудь пропустили?


.

Читайте также: