Сделать любое оконное приложение Always On Top без сочетания клавиш?
Я проверил предыдущий вопрос здесь, но, к сожалению:
- DeskPin в основном не работает с Windows 8, и все еще не работает в Windows 10
- PowerMenu не обновлялся с 2002 года и, похоже, не работает в Windows 10
- AutoHotKey и AlwaysOnTopMaker требует клавиатуры, нет визуальной индикации того, что окно помечено как всегда сверху или нет
Я нашел программу под названием TurboTop, которая может делать это из системного трея, но в Windows 10 TurboTop перечисляет все программы, которые даже не работают в своем списке, дважды. Это бардак.
WindowPinner делает это лучше, но он все еще включает в список не запущенные программы.
Есть ли какое-либо решение, которое работает в графическом интерфейсе без использования клавиатуры, например, долгое нажатие / щелчок правой кнопкой мыши на строке заголовка и выбор "Всегда сверху"? Если вы привыкли к Ubuntu Linux, вы знаете эту функциональность.
11 ответов
Dexpot делает это, он позволяет "Умное использование заголовков":
Строка заголовка, а также кнопки "Свернуть", "Развернуть" и "Закрыть" могут быть назначены с другими функциями (Роллинг вверх, Свернуть в системный трей и т. Д.).
Всегда сверху одна из функций. Вы можете, например, щелкнуть правой кнопкой мыши по кнопке максимизации и активировать всегда сверху.
Загрузите установщик AlwaysOnTop и установите его (выберите последний выпуск). Запустите приложение из Пуск -> Все программы -> AlwaysOnTop. Он сидит в системном трее. Нажмите на иконку в трее, нажмите "AlwaysOnTop", а затем нажмите на окно, которое вы хотите остаться сверху (курсор будет крестиком в ожидании окна).
Полное раскрытие, я автор приложения, и это было построено с использованием.Net (C#). Полный источник также можно найти по ссылке.
Это не относится к первоначальному вопросу ОП, но кажется хорошим местом для обмена информацией об утилитах "всегда на вершине", даже если для этого требуется несколько щелчков мышью.
С точки зрения программирования, написать такую простую утилиту очень просто. Может быть, поэтому есть так мало решений, или, возможно, почему так много доморощенных.
Мне трудно доверять утилитам, загруженным с чьего-либо аккаунта Google Drive или Dropbox. Но я доверяю Нир Софер из Nirsoft. У него есть крошечное приложение под названием WinLister, в котором мы можем установить окно, которое будет всегда сверху. Это не очень удобно для пользователя, если вы делаете это часто, но мне только иногда нужно прикрепить окно к вершине, так что это работает для меня.
Вы можете использовать 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
Вы можете использовать МаКомфорт.
После установки, помимо многих функций, вы можете щелкнуть средней кнопкой мыши на строке заголовка и выбрать опцию "всегда сверху". Вы можете отключить его таким же образом.