Как быстро переместить текущее окно в другой вид задач / рабочий стол в Windows 10?

В Windows 10 введено представление задач - возможность иметь несколько виртуальных рабочих столов. Когда я нахожусь в окне на Desktop1, каков самый быстрый способ переместить его на Desktop2?

В настоящее время мне нужно войти в переключатель задач (значок на панели задач или Win+Tab), найти окно и перетащить его между рабочими столами. Это неудобно. Есть ли более быстрый способ?

16 ответов

Я думаю, для более быстрого переключения это должно быть в заголовке, поэтому я создал инструмент для этого:

https://github.com/Eun/MoveToDesktop

Вы также можете перемещать окна с помощью WIN + ALT + Влево / Вправо или изменить ярлык по мере необходимости.

Я также искал эту опцию, и из поисков, которые я сделал (я думаю, что я также видел это на форумах Microsoft), это не то, что доступно встроенным в данный момент.

Лучший способ, которым я на данный момент выступил, чтобы избежать использования мыши, это:

  • Winkey + вкладка для экрана рабочего стола
  • Щелкните правой кнопкой мыши на окне, которое вы хотите переместить.
    Используйте правую кнопку клавиатуры или Shift + F10, если у вас нет этой клавиши на клавиатуре.
  • выберите Move to (или введите M, потому что он помечен), а затем рабочий стол, который вы хотите (или N для нового рабочего стола тоже помечено)

Это не очень помогает, но это то, что есть, пока кто-то не разработает что-то, чтобы сделать это легче.

Обновление: я начал изучать это. Существует значение реестра, которое изменяется при перемещении приложения между рабочими столами. В этом месте есть все открытые приложения:

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\SessionInfo\1\ApplicationViewManagement 
(I guess the session number will change if there is more than one logged in).

Идентификатор текущего рабочего стола находится здесь:

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\SessionInfo\1\VirtualDesktops\CurrentVirtualDesktop

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

Я проверил с procmon, и DLL, которые используются в этом процессе:

  • Msctf.dll
  • twinui.dll
  • windows.immersiveshell.serviceprovider.dll
  • shell32.dll
  • UIAnimation.dll

Я предполагаю, что один из них отвечает за визуальное обновление, а основным подозреваемым является UIAnimation.dll!

Если кто-то хочет продолжать расследование, это послужит началом.

Еще один скрипт AHK

#Left::
  WinGetTitle, Title, A
  WinSet, ExStyle, ^0x80, %Title%
  Send {LWin down}{Ctrl down}{Left}{Ctrl up}{LWin up}
  sleep, 50
  WinSet, ExStyle, ^0x80, %Title%
  WinActivate, %Title%
Return

#Right::
  WinGetTitle, Title, A
  WinSet, ExStyle, ^0x80, %Title%
  Send {LWin down}{Ctrl down}{Right}{Ctrl up}{LWin up}
  sleep, 50
  WinSet, ExStyle, ^0x80, %Title%
  WinActivate, %Title%
Return

Это перемещает активное окно влево или вправо с помощью клавиш win+ со стрелками. Проверено на Win10 версии 10.0.17134.1365 с отключенной анимацией.

Я использую Windows 10 Virtual Desktop Enhancer.

Просто скачайте, запустите (и настройте автозапуск, если вам нужно).

Затем вы можете просто нажать Win + Ctrl + Shift + Стрелка влево / Стрелка вправо, и приложение переместится на другой рабочий стол и переключится на этот рабочий стол.

На этом уровне управления Windows я действительно думаю, что вы должны использовать стороннюю программу, чтобы помочь. Моим собственным решением было добавить простой ярлык для AutoHotKey (AHK):

#|::Send, +{F10}M{Enter}

# | это ярлык, который переводит в WIN-| На моей клавиатуре это имеет смысл, так как | выше TAB, но вы можете изменить его так, как вам удобно.

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

Для ознакомления с AHK см. https://autohotkey.com/docs/Tutorial.htm.

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

1. WIN + Tab для быстрого просмотра всех приложений / окон (если у вас несколько мониторов, на каждом мониторе будет один список для каждого виртуального рабочего стола).

2. Щелкните правой кнопкой мыши по приложению / окну, над которым вы хотите перейти -> "Переместить в" и выберите рабочий стол, на который вы хотите отправить приложение.

Прежде чем я нашел это, я даже попробовал опубликованный выше проект MoveToDesktop, но я нахожу это таким же легким, и меню MoveToDesktop, похоже, не появляется во всех приложениях (например, не Chrome или Sublime в данный момент).

zVirtualDesktop

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

Лучшая особенность DesktopView Увидеть ниже.

На GitHub есть еще варианты, которые я сейчас не могу вспомнить

Вот несколько скриншотов zVirtualDesktop

Вы можете выбрать из этих значков в системном трее

Это действительно хорошая функция под названием DesktopView показано ниже. С этим видом вы можете перетащить ваши окна на любой рабочий стол. Он также работает как Alt+Tab в том смысле, что вы можете щелкнуть миниатюру, чтобы перейти в это окно.

Примечание: я ответил на этот вопрос около 1,5-2 лет назад, с некоторыми подсказками, чтобы начать что-то разрабатывать. Но сейчас для этого есть несколько решений.
Я добавил новый ответ, поскольку нет смысла редактировать / улучшать мой предыдущий ответ, поскольку они совершенно разные.

Принимая подсказки от решений Greenonline и Sebastien:

  1. Нажмите "Win+Tab" для представления управления рабочей областью
  2. Клавиши со стрелками для перехода к интересующему окну (если оно было последним в фокусе, в этом не должно быть необходимости).
  3. Нажмите клавишу "Контекст" для выпадающего меню, где вы можете выбрать переход на другие рабочие столы.

Итак, не очень просто, но определенно то, что вы можете легко автоматизировать своими руками.

Я использую autohotkey с сочетанием клавиш CTRL+WIN+SHIFT+LEFT или RIGHT, чтобы перенести окна на другой виртуальный рабочий стол. Я использую только 2 виртуальных рабочих стола, так что это работает для меня независимо от того, нажимаю я влево или вправо.

Код AHK:

#^+Left::
#^+Right::
Send #{tab}        ;WIN+TAB=Open the desktop view
Sleep 200
Send +{F10}M{Enter};SHIFT+F10=context menue. M=move. Enter for the first desktop in the list.
Sleep 100
Send #{tab}        ;WIN+TAB=Close the desktop view
return

Начиная с Windows 10 Версии 1803, простой способ переместить текущее / целевое окно с одного рабочего стола на другой следующим образом:

  1. Нажмите Win + Tab, чтобы увидеть график.
  2. Под разделом Рабочие столы вы увидите окно списка активных запущенных программ под текущим рабочим столом. Нажмите и удерживайте окно и перетащите на нужный рабочий стол.
  3. Вуаля!


Кроме того, он является родным и не требует никакого стороннего программного обеспечения.

Учитывая, что MoveToDesktop Ына больше не поддерживается и больше не работает, альтернативой, которую я нашел для AutoHotKey, является VD.ahk . Он работает на текущих версиях Windows 10 и 11.

Загрузите файлы AHK (на момент написания этой статьи ветка по умолчанию показывает файлы для AHK 1.x; поддержку AHK 2 можно найти в альтернативной ветке ) и добавьте в свой скрипт ahk:

      #Include VD.ahk
#!Left::VD.MoveWindowToRelativeDesktopNum("A", -1)
#!Right::VD.MoveWindowToRelativeDesktopNum("A", 1)

Это связано с Win+Alt+Left/Right.

Это некрасиво, но не использует мышь или какое-либо стороннее программное обеспечение.

Win+ Tab, Shift+ F10, Arrow Down, Arrow Down, Enter, Arrow Down, Enter,Esc

Для меняShift + F10не работает.

Но этот ключ делает свое дело:

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

Решение AutoHotkey. Привязано к Win+ тильда ключ. Этот скрипт автоматизирует все нажатия клавиш, которые вы выполняете вручную, чтобы отправить его на следующий (если вы находитесь на первом) или на предыдущий рабочий стол. Будьте осторожны с такими вещами - это может быть опасно, если этот ввод идет в неправильный пункт назначения.

SendMode Input 
#`::
    send {blind}#{tab}
    sleep 1000
    send {appskey}
    sleep 300
    send {down}
    sleep 200
    send {down }
    sleep 200
    send {right}
    sleep 200
    send {left}
    sleep 200
    send {right}
    sleep 300
    send {enter}
    sleep 300
    send {esc}
    sleep 300
return

Просто нажмите Winkey + Tab, теперь выберите программу (окно) и перетащите ее в список рабочих столов, показанный ниже (Рабочий стол 1 или 2). Готово. Другого пути нет..

Win + Shift + Стрелка влево / Стрелка вправо

или же

Win + Стрелка влево / Стрелка вправо

или же

Win + Arrow Up / Arrow Down

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