Сделать любое оконное приложение Always On Top без сочетания клавиш?

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

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

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

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

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

11 ответов

Решение

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

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

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

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

Полное раскрытие, я автор приложения, и это было построено с использованием.Net (C#). Полный источник также можно найти по ссылке.

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

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

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

http://www.nirsoft.net/utils/winlister.html

Вы можете использовать AutoHotkey и создать скрипт с одной строкой кода:

^SPACE:: Winset, AlwaysOnTop, , A

Ctrl+Пробел Переключить окно, чтобы остаться на вершине.


Посмотрите на полный синтаксис:

WinSet, AlwaysOnTop, OnOffToggle, WinTitle, WinText, ExcludeTitle, ExcludeText

A активирует WinTitle A что означает активное окно.

Читать дальше на Winset Команда здесь: https://autohotkey.com/docs/commands/WinSet.htm


Если вы не знакомы с AutoHotkey, загрузите его отсюда: https://www.autohotkey.com/

И научитесь использовать его: https://autohotkey.com/docs/Tutorial.htm

Объяснение AutoHotkey не будет относиться к этому ответу, и ссылка на учебник объяснит намного лучше, чем я.

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

Еще один замечательный портативный и бесплатный инструмент от Nirsoft — NirCMD — позволяет устанавливать самое верхнее состояние через командную строку, как в следующем примере, делая активное окно переднего плана находящимся сверху, пока оно не будет закрыто (или не вернется в нормальное состояние путем отправки «0») —

      nircmdc.exe win settopmost foreground 1

Лучше всего в сочетании с таймаутом: команда немного подождет (2 секунды), пока вы не переключитесь обратно в нужное окно —

      timeout 2 && nircmdc.exe win settopmost foreground 1

Лично я использую потрясающий лаунчер ControlPad, который находится в трее и ждет моих действий. Я поставил точку. на моей клавиатуре, чтобы сделать любое окно сверху (следующая команда специфична только для этого приложения запуска!) и двойная точка, чтобы отключить это состояние

      [Commands]
.=~Sleep 1000;@D:\Apps\Nirsoft\NirCMD\nircmdc.exe win settopmost foreground 1
..=~Sleep 1000;@D:\Apps\Nirsoft\NirCMD\nircmdc.exe win settopmost foreground 0

Эта утилита NirCMD очень удобна во многих других случаях, так что, хотя она уже есть, почему бы не использовать ее для этого случая?) Она мне действительно помогла!

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

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

Да, попробуйте WindowTop отсюда: http://windowtop.info/

из обзора softpedia (источник: http://www.softpedia.com/get/Desktop-Enhancements/WindowTop.shtml):

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

Это работает очень хорошо на Windows 10

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

Ключевая особенность:

    - Portable
    - Works with Windows 10 (tested, even though the landing page for the software doesn't
      state as such)
    - System tray controls
    - Doesn't retain on-top window settings through log out/restart/shut down

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

Опять же, используя AHK, аналогичное решение, подобное @Shayan, но улучшенная версия, учитывая, что вам не нужны ярлыки.

      ;First add the menu item

menu, tray, add, AlwaysTop, AlwaysTop

; After clicking the menu item, you can select the window you want to keep on top.
AlwaysTop:
SetTimer, FollowMouse, 50
KeyWait, LButton, D
Sleep, 200
WinGet, currentWindow, ID, A
WinGet, ExStyle, ExStyle, ahk_id %currentWindow%
if (ExStyle & 0x8)  ; 0x8 is WS_EX_TOPMOST.
{
   Winset, AlwaysOnTop, off, ahk_id %currentWindow%
   SplashImage,, b fs12, always on top = OFF
   SetTimer, FollowMouse, OFF
   ToolTip
   Sleep, 1500
   SplashImage, Off
}
else
{
   WinSet, AlwaysOnTop, on, ahk_id %currentWindow%
   SplashImage,, b fs12, always on top = ON
   SetTimer, FollowMouse, OFF
   ToolTip
   Sleep, 1500
   SplashImage, Off
}
return

; A tooltip following the mouse instructing you to select the window you want to keep on top
FollowMouse:
MouseGetPos, px, py
ToolTip, Select the window, px+10, py+10
return


Вы можете использовать МаКомфорт.

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

Другие вопросы по тегам